如何查詢此嵌套json結構以查找包含「A」的文檔?mongodb查詢嵌套結構
"categories":[{"id":12,"values":[["A","B","C"]]},{"id":17,"values":[["D","E","F"]]}]
到目前爲止,我只設法獲得的id值與
db.coll.find({categories: { $elemMatch: { id: 12 }}})
如何查詢此嵌套json結構以查找包含「A」的文檔?mongodb查詢嵌套結構
"categories":[{"id":12,"values":[["A","B","C"]]},{"id":17,"values":[["D","E","F"]]}]
到目前爲止,我只設法獲得的id值與
db.coll.find({categories: { $elemMatch: { id: 12 }}})
您需要嵌套$elemMatch
運營商,以配合您的陣列的嵌套層次的元素相匹配:
db.coll.find({
"categories": {
"$elemMatch": {
"values": {
"$elemMatch": {
"$elemMatch": { "$in": ["A"] }
}
}
}
}
})
儘管尼爾的答案會起作用,但只能用兩個$elemMatch
運營商來完成,而不是三個它更簡單。
您可以使用dot notation去的values
屬性,然後你可以使用嵌套$elemMatch
運營商檢查嵌套數組值:
db.coll.find({
"categories.values" : {
$elemMatch : {
$elemMatch : { $in : ["A", "B"] }
}
}
});
謝謝,這是很好的知道和工作。 – Blitz
@Blitz你還是可以接受的,至少讓答案的人都知道,在一眼就知道你的問題已經解決了。 –