[英]MongoDb find opeartion on nested array having multiiple json object in it
我有一個數據集,其中 json 由其中包含多個 json 的數組組成。
數組中的對象有 4 個鍵,其中一些缺少 1 個鍵。
我想獲取數組中所有對象都缺少密鑰的文檔。
例如,從以下這些文件中:
{"test":1,desc:[{"price":1,"abc":"def"},{"price":2,"ac":"def"}]}
{"test":1,desc:[{"price":1,"abc":"def"},{"ac":"def"}]}
{"test":1,desc:[{"abc":"def"},{"ac":"def"}]}
我只想匹配最后一個文檔。
提前致謝..
您可以只使用$exists :
db.collection.find(
{
"desc.price": {$exists: false}
}
)
如果您還想要其他領域:
db.collection.find(
{
$or: [
{
"desc.price": {$exists: false}
},
{
"desc.abc": {$exists: false}
},
{
"desc.ac": {$exists: false}
}
]
}
)
需要注意的一點是空數組,即desc = []
將始終與此查詢匹配。 如果你想確保至少有一個 object 使用這個查詢:
db.collection.find(
{
$and: [
{
"desc.price": {$exists: false}
},
{
"desc.0": {$exists: true}
}
]
}
)
實現了這一點,只是制作了一個腳本,我使用一個數組來存儲價格的東西,然后使用。每個方法都未定義價格,它返回了我想要的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.