【问题标题】:Spring Data Mongodb not sorting properly on null valuesSpring Data Mongodb 未对空值正确排序
【发布时间】:2016-10-25 06:45:58
【问题描述】:

我在使用 mongodb 排序时遇到了一个问题。默认情况下,对空值进行排序,作为升序的第一个元素和降序的最后一个元素。对于我的要求之一,无论排序顺序如何,我都必须在最后一个位置显示所有空值。

如果是单列,应该没问题。但我必须一次对多个字段进行排序。对于所有字段,它必须将所有空值视为最后一个值。

Mongodb 有什么方法支持这个。我正在使用弹簧数据。以为spring sort提供了Null Last作为参数的功能,但有些不起作用。

【问题讨论】:

  • 请提供更多信息,例如您已经尝试过的代码不起作用。另请分享有关您的环境的更多信息。

标签: spring mongodb sorting


【解决方案1】:

您可以这样对字段进行排序:

Sort sort = new Sort(
            new Sort.Order(Sort.Direction.DESC, "firstField", Sort.NullHandling.NULLS_LAST),
            new Sort.Order(Sort.Direction.ASC, "secondField", Sort.NullHandling.NULLS_LAST),
            new Sort.Order(Sort.Direction.ASC, "thirdField", Sort.NullHandling.NULLS_FIRST));

【讨论】:

  • MongoDB 不支持此功能。它适用于 SQL 查询,即 RDMS。
  • @FaisalFeroz 你能指点我确认这一点的文件吗?谢谢
  • 我认为 Spring Data Mongo 文档中没有提到支持(或不支持)这一点,但是如果您遍历代码,您将在 Spring Data 中找不到任何参考MongoDB 实现,但你会发现 Spring Data JPA。
猜你喜欢
  • 2016-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-11
  • 2017-06-03
  • 2015-10-17
  • 1970-01-01
  • 2015-04-14
相关资源
最近更新 更多