我在为MongoDB请求而苦苦挣扎。我有一个Play
架构,其中包含一个Move
对象的数组。每个Move
对象都以ObjectID的形式保存对Player
的引用。按照this question我尝试做
{ 'moves.player': { $elemMatch : { $ne : playerId } } }
其中
playerId
保存一个ObjectID。但是我得到了错误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
不同。 最佳答案
好,找出问题出在哪里...
{ "moves": { $elemMatch: { "player": { $ne : playerId } } } }
而且效果很好!