使用 MongoDb 查询获取特定字段
Get specific fields with MongoDb query
我有这样的架构
{
_id:ObjectId(),
...,
translations:[{
value: "English",
code:"en"
},{
value: "German",
code:"de"
}]
}
所有对象都有代码 'en' 和 'de' 的翻译,如何获取代码 'en' 的所有对象(值,id)? A 结果应该与此类似:
[{
_id:ObjectId(),
value:"English"
},....
...]
您可以使用 aggregation pipeline
db.collection.aggregate(
[
{ "$unwind": "$translations"},
{ "$match": { "translations.code": "en" }},
{ "$project": { "value": "$translations.value", "_id": 1 }}
]
)
我有这样的架构
{
_id:ObjectId(),
...,
translations:[{
value: "English",
code:"en"
},{
value: "German",
code:"de"
}]
}
所有对象都有代码 'en' 和 'de' 的翻译,如何获取代码 'en' 的所有对象(值,id)? A 结果应该与此类似:
[{
_id:ObjectId(),
value:"English"
},....
...]
您可以使用 aggregation pipeline
db.collection.aggregate(
[
{ "$unwind": "$translations"},
{ "$match": { "translations.code": "en" }},
{ "$project": { "value": "$translations.value", "_id": 1 }}
]
)