我在MongoDB数据库中有一个集合。每个文档都有(以及其他)一个对象字段,如下所示:
name: {
"en-US": "Foo",
"es-ES": "Bar"
...
}
保证en-US
键存在,但不存在任何其他键/值。
有没有办法可以查询文档,结果将包含字段name
,该字段的值将是我传递的语言(让它成为es-ES
)或者如果该密钥不存在,则为en-US
?
答案 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'
}
}
}
}
])