【问题标题】:Get value by key of object field in a MongoDB document or default value通过 MongoDB 文档中的对象字段的键或默认值获取值
【发布时间】:2016-05-15 12:06:17
【问题描述】:

我在 MongoDB 数据库中有一个集合。每个文档(除其他外)都有一个如下所示的对象字段:

name: {
    "en-US": "Foo",
    "es-ES": "Bar"
    ...
}

en-US 键保证存在,但任何其他键/值不存在。

有没有一种方法可以查询文档,结果将包含字段name,并且该字段的值将是我传递的语言(让它是es-ES)或者如果键不存在,en-US的值?

【问题讨论】:

    标签: mongodb


    【解决方案1】:

    我解决了我的问题:

    db.products.aggregate([
        {
            $project: {
                short_id: 1,
                name: {
                    $cond: {
                        if: {
                          $eq: ["$name.es-ES", undefined]
                        },
                        then: '$name.en-EN',
                        else: '$name.es-ES'
                    }
                }
            }
        }
    ])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-17
      • 2016-10-05
      • 1970-01-01
      • 1970-01-01
      • 2017-12-09
      • 1970-01-01
      相关资源
      最近更新 更多