MongoDB:更新多个文档但不要插入

时间:2014-11-17 07:28:11

标签: mongodb

我正在尝试更新少数文档中的特定字段,但如果该字段不存在于任何文档中,则不希望插入该字段。例如,如果我在集合中有以下三个文档" test":

{
Name: "abc",
Age: 10,
Hits: 1,
Score: 100
},
{
Name: "def",
Age: 20,
Hits: 1,
Score: 50
},
{
Name: "ghi",
Age: 30,
Score: 100
}

我试过这个命令:

 db.test.update({},{$set:{Hits:2}},{multi:true,upsert:false})

这是输出:

    {
    Name: "abc",
    Age: 10,
    Hits: 2,
    Score: 100
    },
    {
    Name: "def",
    Age: 20,
    Hits: 2,
    Score: 50
    },
    {
    Name: "ghi",
    Age: 30,
    Score: 100,
    Hits: 2
   }

我的预期输出是:

    {
    Name: "abc",
    Age: 10,
    Hits: 2,
    Score: 100
    },
    {
    Name: "def",
    Age: 20,
    Hits: 2,
    Score: 50
    },
    {
    Name: "ghi",
    Age: 30,
    Score: 100
    }

基本上,我不期待第三个文件的名称" ghi"拥有该领域" Hits"。 请让我知道你的想法。 感谢。

1 个答案:

答案 0 :(得分:1)

只需为更新添加过滤器:

db.test.update({Hits: {$exists: true}}, {$set: {Hits: 2}}, {multi:true, upsert:false})
相关问题