Mongodb:查找至less有一个元素与ObjectID不匹配的数组
我正在努力与MongoDB请求。 我有一个Play
模式,保存一个Move
对象的数组。 每个Move
对象都以ObjectID的forms持有对Player
的引用。 在这个问题之后,我试着去做
{ 'moves.player': { $elemMatch : { $ne : playerId } } }
playerId
保存一个ObjectID。 但是我得到的错误
Error: Can't use $elemMatch with ObjectId
我也尝试了以下
{ 'moves.player.str': { $elemMatch : { $ne : playerId.toString() } } }
但它没有find适当的文件…任何想法?
例
一些Play
logging:
A = { "moves": [ { player: { $oid: "56f32fe2f41638de3b3e4773" } }, { player: { $oid: "56f32fe2f41638de3b3e4774" } } ] } B = { "moves": [ { player: { $oid: "56f32fe2f41638de3b3e4773" } } ] }
对于playerId = "56f32fe2f41638de3b3e4773"
查询应该只返回对象A,因为它是唯一一个拥有至less一个玩家不同于56f32fe2f41638de3b3e4773
的移动arrays。
好的,找出问题出在哪里…就这样做
{ "moves": { $elemMatch: { "player": { $ne : playerId } } } }
它工作得很好!