node.js - 同时按两个字符串值对 mongodb 进行排序
问题描述
例如,我有如下架构:
{
"ID": "257185",
"Name": "xxxx",
"isAvailable": "NO",
"isSuper": "NO"
}
我想在 mongo 中对它的值isAvailable
和isSuper
(字符串值)进行排序,所以我收到的第一条记录是 YES / YES 之后是 YES / NO 或 NO / YES。
我怎样才能达到这样的效果?我可以对此有任何指示吗?我想隐藏 NO / NO 记录
解决方案
您可以像这样使用使用猫鼬的简单find
方法:
model.find({"$or": [
{
"isAvailable": "YES"
},
{
"isSuper": "YES"
}
]}).sort({isAvailable: -1,isSuper: -1})
或者,如果您使用的是聚合管道,则可以添加以下阶段:
db.collection.aggregate([
{
"$match": {
"$or": [
{
"isAvailable": "YES"
},
{
"isSuper": "YES"
}
]
}
},
{
"$sort": {
"isAvailable": -1,
"isSuper": -1
}
}
])
这里的例子
推荐阅读
- java - 从 Scanner 读取多个输入
- .net - 无法加载程序集 Microsoft.Build.Utilities.Core 版本 = 15.1.0.0
- bash - UNIX 更改文件列表的所有文件扩展名
- c# - Windows 服务未卸载
- mysql - DECLARE 在此位置无效
- react-native - ScrollView 内部的 MapView 没有禁用滚动功能 React Native
- javascript - 在 OSM 中使用leaflet.js 在第二次单击时删除图钉/标记?
- git - 如何恢复关闭的提交以在 Gerrit 上挑选樱桃?
- sql - 此查询中 IsNull 的用途是什么?
- wpf - 在 PriorityBinding 中使用 MarkupExtension