我正在努力處理MongoDB請求。我有一個Play
架構,其中包含Move
對象的數組。每個Move
對象以ObjectID的形式保存對Player
的引用。繼this question我試圖做Mongodb:查找至少有一個元素不匹配的數組的文檔ObjectID
{ 'moves.player': { $elemMatch : { $ne : playerId } } }
其中playerId
持有的對象ID。但是我得到的錯誤
Error: Can't use $elemMatch with ObjectId
我也曾嘗試以下
{ 'moves.player.str': { $elemMatch : { $ne : playerId.toString() } } }
,但沒有找到合適的文件...任何想法?
例
一些Play
記錄:
A = {
"moves": [
{ player: { $oid: "56f32fe2f41638de3b3e4773" } },
{ player: { $oid: "56f32fe2f41638de3b3e4774" } }
]
}
B = {
"moves": [
{ player: { $oid: "56f32fe2f41638de3b3e4773" } }
]
}
查詢爲playerId = "56f32fe2f41638de3b3e4773"
應僅返回對象A,因爲它是具有移動的陣列的玩家,其中至少一個唯一的一個不同於56f32fe2f41638de3b3e4773
。
不幸的是。即使你找到了你自己的解決方案(或者至少你認爲你是這樣做的),這個問題並沒有顯示你實際上查詢的文檔結構。因此,任何人都沒有什麼用處,並且是一個很不明確的問題。顯示您期望匹配的示例文檔將使其更好。 –
好的建議,增加了一個例子,這可能有助於理解問題。被困在這個很長一段時間,所以我懷疑它可能對別人有用。 –