【发布时间】:2019-06-29 07:50:47
【问题描述】:
到目前为止,我一直在使用此代码来查找我的文档,然后对其进行排序:
var options = new FindOptions
{
Modifiers = new BsonDocument("$hint", "PathTypeFilenameIndex")
};
return await Collection
.Find(f => f.Metadata["path"] == path, options)
.SortBy(f => f.Metadata["type"])
.ThenBy(f => f.Filename)
.ToListAsync();
我有一个包含路径和类型字段的元数据字段的类,该类还有一个文件名字段。我希望元数据中具有给定路径的所有文档按类型排序,然后按文件名排序。
一个示例结果是按名称字段排序的文档列表,如下所示:
a, Ab, B, c, D
不幸的是,我得到了这样的东西:
Ab, B, D, a, c
这是因为 MongoDB 使用简单的二进制比较对数据进行排序,其中 'A'
所以我的问题是:有没有办法进行不区分大小写的排序并继续使用“$hint”?
我传递给 Find 方法的选项应该告诉 MongoDB 使用哪个索引。我找到了这篇文章:MongoDB and C#: Case insensitive search 但这里的方法不适用于排序,我无法告诉 MongoDB 使用哪个索引。
【问题讨论】:
标签: c# mongodb sorting indexing