如何在猫鼬中更新集合中所有文档的相同字段

Jer*_*rVi 1 mongoose mongodb node.js

我有这个收藏(不完全是我的收藏,例如)。我想将所有“ numberOfViewsPerWeek”字段更新为0,就像重置一样。

{
    "_id" : ObjectId("594d2359bf170b0828690bf7"),
    "owner" : ObjectId("594c126285f0922a985083c1"),
    "numberOfViewsSincePost" : 15,
    "numberOfViewsPerWeek" : 4,
}

{
    "_id" : ObjectId("594d709addb8691cf067fa73"),
    "owner" : ObjectId("594c126285f0922a985083c1"),
    "numberOfViewsSincePost" : 10,
    "numberOfViewsPerWeek" : 2,
}

{
    "_id" : ObjectId("764d709addb8691cf067fa70"),
    "owner" : ObjectId("594c126285f0922a985083c1"),
    "numberOfViewsSincePost" : 12,
    "numberOfViewsPerWeek" : 7,
}
...
Run Code Online (Sandbox Code Playgroud)

我会尝试使用update,但是它只会更新第一个文档,我的代码是这样

Property.update({}, {'$set': {'numberOfViewsPerWeek' : 0}}, function(error, properties){

        if(error){
            console.log(error);
        }

        if(!properties){
            console.log('Something went wrong');
        }

        console.log('success update view');
    });
Run Code Online (Sandbox Code Playgroud)

我该怎么办?提前致谢

Omr*_*zon 5

我实际上认为很多人对此都有疑问。
您应该包括一个名为的选项multi: true

例如:

Property.update({}, {'$set': {'numberOfViewsPerWeek' : 0}}, {multi: true},
   function(error, properties){/* ... rest of the code*/
Run Code Online (Sandbox Code Playgroud)

文件:

默认情况下,update()方法更新单个文档。设置“多参数”以更新所有符合查询条件的文档。

我不知道他们为什么这样做,我觉得这很不直观。
我认为更新所有文档应为默认设置。