我想根據貓鼬中嵌套物件的鍵找到一個檔案。例如
{
"_id": 1,
"first_name": "Tom",
"email": "[email protected]",
"ACL": {
123gd: {
read: true,
write: false,
},
3sg2w: {
read: true,
write: false,
}
}
},
{
"_id": 2,
"first_name": "Tom",
"email": "[email protected]",
"ACL": {
546er: {
read: true,
write: false,
},
98trw: {
read: true,
write: false,
}
}
}
對于上面的示例檔案資料,我想撰寫一個方法來查找并回傳只有ACL key is 123gd. 那是
{
"_id": 1,
"first_name": "Tom",
"email": "[email protected]",
"ACL": {
123gd: {
read: true,
write: false,
},
3sg2w: {
read: true,
write: false,
}
}
}
那么我怎樣才能用貓鼬寫來找到具體的檔案
uj5u.com熱心網友回復:
您可以通過$objectToArray將ACL物件轉換為 kv 元組陣列來做到這一點。然后你可以$anyElementTrue用來檢查任何k存在123gd
db.collection.find({
$expr: {
"$anyElementTrue": {
"$map": {
"input": {
"$objectToArray": "$ACL"
},
"as": "kv",
"in": {
$eq: [
"$$kv.k",
"123gd"
]
}
}
}
}
})
這是Mongo Playground供您參考。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/490195.html
上一篇:MongoDB將架構顯示為未定義
下一篇:Mongoose-Error.ValidationError和Error.ValidatorError之間的區別
