使用限制性选项的_id查询mongodb

时间:2014-06-22 16:58:28

标签: mongodb

假设我知道要更新的文档的_id值,但我希望只有当user字段等于某个值时才更新它。这是正确的方法吗

collection.update({_ id:'1',user:'correct_user'},data)?

我是否需要为此任务创建一些其他索引?

1 个答案:

答案 0 :(得分:2)

是的,它只会在_iduser匹配时才会更新。

由于您在完全唯一的完全_id上匹配,因此user上的索引不会真正改善查询,因为最终只有最多一个user的值与之比较。

> collection.find({_id: '1', user: 'correct user'}).explain() 

{
    "cursor" : "BtreeCursor _id_",
    "isMultiKey" : false,
    "n" : 1,
    "nscannedObjects" : 1,               // Only a single object is scanned
    "nscanned" : 1,
    "nscannedObjectsAllPlans" : 1,
    "nscannedAllPlans" : 1,
...