我找到了这样的 c# 代码(Collection
是这里的类型MongoCollection<T>
):
Collection.AsQueryable()
.OrderByDescending(i => i.SomeField)
.Where(i => i.OtherField == "bla-bla")
不像我预期的那样在服务器上同时运行排序(OrderBy)和过滤(Where),而是使用MongoDb引擎调用排序,并且所有进一步的过滤都在客户端处理,这需要相当多的时间。作为代码执行的结果,我在 Mongodb 分析器中发现的内容:
"query" : {
"$query" : { },
"$orderby" : {
"SomeField" : -1
}
}
注释$query
为空。好吧,关于如何使它在数据库上工作(排序和过滤)有什么想法吗?