代码之家  ›  专栏  ›  技术社区  ›  Anna

按聚合中的忽略大小写排序

  •  0
  • Anna  · 技术社区  · 6 年前

    我试图用不区分大小写的选项对结果进行排序。这是我的代码:

    List<AggregationOperation> operations = new ArrayList<>();   
    Sort.Order sort = ....ignoreCase();
    operations.add(new SortOperation(new Sort(sort)));
    

    但当我使用聚合执行查询时,它不起作用:

    mongoOperations.aggregate(Aggregation.newAggregation(operations).withOptions(aggregationOptions)
    

    我在调试控制台中显示了查询,ignoreCase在聚合中完全消失:

    db.getCollection('persons').aggregate([   
        {  
          "$sort":{  
            "buyer.organization.name":-1
          }
        }
    ])
    

    如何将“忽略大小写”选项放入聚合中?

    谢谢你的帮助!

    1 回复  |  直到 6 年前
        1
  •  0
  •   Anna    6 年前

    解决这个问题的办法是 MongoDB Collation 并将其添加到 mongoOperations . 我用过 strength = 1 忽略了案件。