MongoDB 我有一個檔案,我需要獲取一個物件,如果locale.en那么它將回傳該資訊 if locale.fr' 那么它將回傳該資訊
{
"locale": {
"en": {
"dashboard": {
"DASHBOARD_TITLE": "Some title"
}
},
"fr": {
"dashboard": {
"DASHBOARD_TITLE": "Some title french"
}
},
"pr": {
"dashboard": {
"DASHBOARD_TITLE": "Some title portugues"
}
}
}
}
如何查詢這個特定的物件?
db.collectionName.find({locale.en})

uj5u.com熱心網友回復:
您可以使用聚合來實作這一點
假設您的物件具有locale這樣的鍵
{
"_id": <Some Object Id>,
"locale": {
"en": {
"dashboard": {
"DASHBOARD_TITLE": "Some title"
}
},
"fr": {
"dashboard": {
"DASHBOARD_TITLE": "Some title french"
}
},
"pr": {
"dashboard": {
"DASHBOARD_TITLE": "Some title portugues"
}
}
}
}
然后聚合將是
[{
"$project": {
"locale": {
"$arrayToObject": {
"$filter": {
"input": {
"$objectToArray": "$locale"
},
"as": "el",
"cond": {
$eq: [
"$$el.k",
"en"
]
}
}
}
}
}
}]
只需將您的語言環境$eq作為第二個值傳遞給陣列,我已經傳遞了en您可以在此處使用變數來構建查詢
游樂場:https ://mongoplayground.net/p/7ZHIUx_j1GY
對這個問題的回答詳細解釋了管道 MongoDB 對特定嵌套屬性的投影
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/426930.html
標籤:javascript mongodb 猫鼬
