官方的 MongoDB api 很少写关于 $ne http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24ne
所以当我遇到类似的事情时
db.papers.update({"authors cited" : {"$ne" : "Richie"}},
... {$push : {"authors cited" : "Richie"}})
我别无选择,只能变得完全糊涂。有人可以向我解释一下吗?
官方的 MongoDB api 很少写关于 $ne http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24ne
所以当我遇到类似的事情时
db.papers.update({"authors cited" : {"$ne" : "Richie"}},
... {$push : {"authors cited" : "Richie"}})
我别无选择,只能变得完全糊涂。有人可以向我解释一下吗?
这会将“Richie”添加到尚未将“Richie”作为作者的论文的引用作者列表中。
另一种方法是使用$addToSet
.
但是,我怎么知道 {"authors quoted" : {"$ne" : "Richie"}} 是否表示列表中与“author被引用”相对应的元素,与“author被引用”对应的值?
这有点令人困惑。通常(我确信有例外,但应该记录这些例外),所有选择器都针对多值字段的单个值。在 Mongo 中,这称为“多键”。
请注意,这使我最初假设您的查询将针对至少有一位作者不是 Richie 的所有论文。然后我检查了一下,结果证明是错误的。为您的问题+1,因为这确实需要更好地记录。