mongoTemplate排序:A字段不存在则使用B字段排序

需求

  • 列表根据现有字段updateAt排序
  • 如果updateAt字段不存在,则使用createAt字段排序
  • createAt字段一定存在,updateAt可能不存在
似乎要用到aggregate,写了好久没写出来,希望各位不吝赐教
阅读 2.4k
1 个回答

大概这么弄:

db.collection.aggregate({
    $addFields: {
        "sortField": {
            $cond: {
                if: { $ne: [ "$updateAt", undefined  ] }, 
                then: "$updateAt",
                else: "$createAt"
            }
        }
    }
}, {
    $sort: {
        "sortField": 1
    }
})

希望能帮助到你。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题