手动为MongoDB查询提供参数以支持排序功能(对于不区分大小写的索引)

本文关键字:于不区 功能 大小写 索引 排序 支持 MongoDB 查询 参数 | 更新日期: 2023-09-27 18:04:00

我已经安装了当前的开发版本3.3.11,以便测试根据https://jira.mongodb.org/browse/SERVER-90显然支持的不区分大小写的索引。我从一个mongo shell和一个简单的测试数据库尝试过这个,它似乎工作。

不幸的是,即使在索引创建期间指定了排序规则(和强度),也必须与.find指定相同的排序参数,以便获得不区分大小写的匹配。如果在查询中省略了排序规则,索引将以区分大小写的方式运行。

即使是最新的c# MongoDB驱动程序(2.3.0-beta1)似乎也不支持为查询提供排序参数。因此,即使我已经升级了引擎和数据库,c#驱动程序,创建了索引与所需的排序,我似乎无法得到使用当前驱动程序的结果。

是否有"手动"方式为查询提供额外的参数?

手动为MongoDB查询提供参数以支持排序功能(对于不区分大小写的索引)

现在在新版本的c# mongo驱动程序中(从2.4.0开始)可以实现。

例如,查询不区分大小写的索引:

IMongoCollection<SomeObject> someCollection;
var results = someCollection.Find<SomeObject>(x => x.name == someName,
  new FindOptions() {  Collation = new Collation("en", strength: CollationStrength.Secondary) } )

注意,要使用索引的功能,您需要在查询中指定与创建索引时指定的完全相同的排序参数。