Jou*_*man 3 sorting mongodb mongodb-.net-driver
我想基于几个字段对一个MongoDB集合进行排序,一些是升序,另一些是降序.我正在使用官方的C#驱动程序.我的代码目前看起来像这样:
string[] sortFields = new[] { "surname", "firstname","companyname","email" };
MongoDB.Driver.Builders.SortByBuilder sort = MongoDB.Driver.Builders.SortBy.Ascending(sortFields);
foreach (MongoDB.Bson.BsonDocument doc in contactsCollection.FindAs<MongoDB.Bson.BsonDocument>(query).SetSortOrder(sort))
{
...
Run Code Online (Sandbox Code Playgroud)
如何更改此代码以便对电子邮件进行降序排序?
非常感谢.
你可以链接SortBy电话:
var sort = SortBy.Ascending("surname").Descending("email");
foreach (var doc in contactsCollection.FindAs<MongoDB.Bson.BsonDocument>(query).SetSortOrder(sort))
{
...
Run Code Online (Sandbox Code Playgroud)
我要小心动态构建查询,尤其是使用那么多密钥.请记住,MongoDB只为查询使用一个索引,因此您的索引必须非常合适.
例: find({A: "foo", B: "bar"}).sort("C" : -1);
如果复合索引是,则不会有效地使用索引{C, A, B}.它必须是{A, B, C}.索引太多会占用空间并使插入/更新速度变慢.
| 归档时间: |
|
| 查看次数: |
3977 次 |
| 最近记录: |