如何在mongoDB中進行此查詢?如何在mongoDB中執行此查詢?
{
_id: 「*******」
內容: 「」,
註釋:[
{
key1:「1」,
KEY2: 「2」
},
{
KEY1: 「SDFS」,
KEY2: 「sdfasdf」
}
]
}
例如,我使用如下的數據。我想在條件{key1:1,key2:2}中查詢註釋中的項目,而不是返回整個記錄。
我該怎麼辦?
如何在mongoDB中進行此查詢?如何在mongoDB中執行此查詢?
{
_id: 「*******」
內容: 「」,
註釋:[
{
key1:「1」,
KEY2: 「2」
},
{
KEY1: 「SDFS」,
KEY2: 「sdfasdf」
}
]
}
例如,我使用如下的數據。我想在條件{key1:1,key2:2}中查詢註釋中的項目,而不是返回整個記錄。
我該怎麼辦?
您可以使用$elemMatch
兩個字段查詢子文檔:
{ comments: { $elemMatch : { key1: 1, key2: 2 } } }
You cannot return just the selected subdocument。你會得到他們全部。所以你必須在客戶端進行過濾。 (當然,您可以排除主文檔的所有其他字段)。
你可以嘗試這一個
{ "comments.key1" : "1", "comments.key2" : "sdfasdf" }
你只需要使用這個當多個字段必須在數組元素相匹配。
這不行。即使一個評論有key1,這個匹配也會匹配,並且一個*不同的評論有key2。你需要使用$ elemMatch。 – Thilo
你的意思是即使我使用「$ elemMatch」,兩個子文檔仍然會返回? –
'$ elemMatch'!我不知道那件事。是的,那會起作用。更新答案。 – Thilo
謝謝,我稍後再檢查,這對你很好 –