java mongo忽略大小写_Java Spring Mongo排序忽略大小写问题

我正在使用Spring-Data-mongodb对MongoDB执行各种请求。

当尝试使用忽略大小写执行分页和排序时,出现异常,

这是我的代码:

Sort.Order order = new Sort.Order(ascending? Sort.Direction.ASC: Sort.Direction.DESC, sortKey).ignoreCase();

Query query = new Query(filter).with(new PageRequest(page, size, new Sort(order)));

return mongoTemplate.find(query, clazz,collection);

注意在Sort.Order对象上应用的.IgnoreCase()方法。

Query .with方法失败,并引发异常:

java.lang.IllegalArgumentException:给定的排序包含带有忽略大小写的lastName的Order!MongoDB当前不支持排序忽略大小写!在org.springframework.data.mongodb.core.query.Query.with(Query.java:179)在org.springframework.data.mongodb.core.query.Query.with(Query.java:162)

如果删除.IgnoreCase()方法,即执行以下代码:

Sort.Order order = new Sort.Order(ascending? Sort.Direction.ASC: Sort.Direction.DESC, sortKey);

Query query = new Query(filter).with(new PageRequest(page, size, new Sort(order)));

return mongoTemplate.find(query, clazz,collection);

一切正常,除了我当然不会得到不敏感的排序结果。

因此我可能会得到ABC a1 a2,而不是A a1 a2 BC。

即使该异常提到mongoDB不支持IgnoreCase排序,但我使用的是mongo

3.4,据我所知,它确实支持可分页排序的ignoreCase选项(这是有关不敏感搜索功能的官方JIRA问题),以及我的spring-

data-mongodb包是1.8。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值