首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在MongoDB (JS)中对字符串和多种类型进行多重排序?

如何在MongoDB (JS)中对字符串和多种类型进行多重排序?
EN

Stack Overflow用户
提问于 2018-08-12 00:34:01
回答 2查看 33关注 0票数 0

我如何按字符串进行排序!null && exists >> bool is true >> createDate is从最新的到最旧的?

这是我尝试过的:

代码语言:javascript
复制
// -1 = descending/newest, right?
var sort = 
{
    "str" : -1, // str will either null, "" or "filled". I don't think this works.
    "bool" : -1,  // bool will be true or false. Seems to maybe work.
    "createDate" : -1 // date obj. Seems to work.
};
EN

回答 2

Stack Overflow用户

发布于 2018-08-18 21:16:59

正确答案是bool工作,createDate工作,但字符串不工作:

我发现bool和createDate过滤得很好--只是字符串做不到。我编写了一个脚本来遍历我所有的数据库以添加一个bool (如果str存在的话)(并添加到脚本中以备将来使用)。

因此:

代码语言:javascript
复制
// -1 = descending/newest
var sort = 
{
    "strExistsBool" : -1,
    "bool" : -1,
    "createDate" : -1
};

然后使用:

代码语言:javascript
复制
db.collection.find(someQuery).sort(sort)
票数 0
EN

Stack Overflow用户

发布于 2018-08-12 03:13:50

问题中的前两个条件实际上是过滤记录,第三个条件是对结果集进行排序。尝试此查询。

代码语言:javascript
复制
db.collection.find({'str':{$ne:null,$exists:true},'bool':true}).sort({'createDate' : -1})
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51801705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档