我正在努力处理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
不同。
答案 0 :(得分:2)
好的,找出问题出在哪里......只需做
{ "moves": { $elemMatch: { "player": { $ne : playerId } } } }
它运作得很好!