MongoDB如何按这样的多个字段排序?

兰迪

在此处输入图片说明

对不起我的英语不好。我要这样排序,'initial'首先是状态排序,然后是排序'create_time'这可能吗?我认为'aggregate'可能会有所帮助,但我不知道如何在这种情况下使用它。

s7vr

您可以尝试在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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章