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

Manually supplying arguments to a MongoDB query to support collation feature (for case insensitive index)

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

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

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

是否有 "manual" 为查询提供额外参数的方法?

现在可以在较新版本的 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) } )

请注意,要享受索引的强大功能,您需要在查询中指定与创建索引时指定的完全相同的排序规则参数。