【问题标题】:How to decorate mongo documents before sorting?排序前如何装饰mongo文档?
【发布时间】:2020-06-26 03:31:40
【问题描述】:

一个例子是,我有一个用户集合。有些用户有age 字段,有些则没有,即:

userA: {
    age: 10
}
userB: {
    age: null
}
userC: {
    age: 20
}

我想将所有没有age 值的用户装饰为{age: 15},然后按age 排序。所以这个查找和排序的期望结果是:[userA, userB, userC]。有办法吗?

【问题讨论】:

    标签: javascript mongodb mongoose mongodb-query


    【解决方案1】:

    您可以使用$ifNull 运算符设置默认值:

    db.collection.aggregate([
        {
            $addFields: {
                age: { $ifNull: [ "$age", 15 ] }
            }
        },
        {
            $sort: { age: 1 }
        }
    ])
    

    Mongo Playground

    【讨论】:

      猜你喜欢
      • 2018-06-01
      • 1970-01-01
      • 2018-01-07
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多