对不起我的英语不好。我要这样排序,'initial'
首先是状态排序,然后是排序'create_time'
。这可能吗?我认为'aggregate'
可能会有所帮助,但我不知道如何在这种情况下使用它。
您可以尝试在3.4中的汇总下方进行自定义排序。
使用$indexOfArray
定位的位置“初始”,0时状态是别的发现-1对于所有其他文件,并$addFields
保持输出指数在额外领域的文件,然后在$sort
排序上的字段。
$project
排除掉排序字段以获得预期的输出。
排序时,所有初始状态文档都显示在顶部,然后在create_time上排序。
db.col.aggregate([
{
"$addFields":{
"statusValue":{
"$indexOfArray":[
["initial"], "$status"
]
}
}
},
{
"$sort":{
"statusValue":-1, "create_time":-1
}
},
{
"$project":{
"statusValue":0
}
}
])
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句