【发布时间】:2016-03-24 06:02:00
【问题描述】:
我正在为一个 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。
【问题讨论】:
-
不幸的是。即使您找到了自己的解决方案(或者至少您认为自己找到了),这个问题也不会显示您实际上正在查询的文档结构。因此,作为示例对任何人都没有多大用处,并且是一个非常不清楚的问题。显示您希望匹配的示例文档会更好。
-
好建议,添加了一个例子,这可能有助于理解问题。被这个卡住了很长时间,所以我怀疑它可能对其他人有用。