gpt4 book ai didi

MongoDB 排序顺序 - 升序和降序字段的混合

转载 作者:可可西里 更新时间:2023-11-01 09:25:17 26 4
gpt4 key购买 nike

我想根据几个字段对 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))
{
...

我如何更改此代码以使其按降序排列电子邮件?

非常感谢。

最佳答案

您可以链接 SortBy 调用:

var sort = SortBy.Ascending("surname").Descending("email");
foreach (var doc in contactsCollection.FindAs<MongoDB.Bson.BsonDocument>(query).SetSortOrder(sort))
{
...

我会小心地动态构建查询,尤其是在有那么多键的情况下。请记住,MongoDB 只对一个查询使用一个索引,因此您的索引必须非常合适。

示例:find({A: "foo", B: "bar"}).sort("C": -1);

如果复合索引是 {C, A, B},这将无法有效地使用索引。它必须是 {A, B, C} 而不是。太多的索引会占用空间并使插入/更新变慢。

关于MongoDB 排序顺序 - 升序和降序字段的混合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8488009/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com