通过MongoDB文档中的对象字段的键或默认值获取值

时间:2016-05-15 12:06:18

标签: mongodb

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

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

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

有没有办法可以查询文档,结果将包含字段name,该字段的值将是我传递的语言(让它成为es-ES )或者如果该密钥不存在,则为en-US

的值

1 个答案:

答案 0 :(得分:0)

我解决了我的问题:

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