作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我想根据几个字段对 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/
序 大家好呀,我是summo,这次来写写我在上班空闲(摸鱼)的时候做的一个小网站的事。去年阿里云不是推出了个活动嘛,2核2G的云服务器一年只要99块钱,懂行的人应该知道这个价格在业界已经是非常良心了
我尝试根据给定的级别顺序(BFS 顺序)构造 BST。我知道这是可能的,但我不知道我该怎么写。问题是我必须使用 BFS 序列。所以,我不能在这里使用递归,我必须迭代地编写我的程序......我发现这有
我是一名优秀的程序员,十分优秀!