我有这样的架构
{
_id:ObjectId(),
...,
translations:[{
value: "English",
code:"en"
},{
value: "German",
code:"de"
}]
}
所有对象都有代码'en'和'de'的翻译,如何使用代码'en'获取所有对象(value,id)? A结果应该类似于:
[{
_id:ObjectId(),
value:"English"
},....
...]
答案 0 :(得分:2)
您可以使用aggregation pipeline
执行此操作 db.collection.aggregate(
[
{ "$unwind": "$translations"},
{ "$match": { "translations.code": "en" }},
{ "$project": { "value": "$translations.value", "_id": 1 }}
]
)