2017-06-23 2 views
0

私はこのコレクションを持っています(私のものではありません)。私はリセットのようにすべての "numberOfViewsPerWeek"フィールドを0に更新したいと思います。mongooseのコレクション内のすべてのドキュメントの同じフィールドを更新するには

{ 
    "_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, 
} 
... 

私が更新を使用しようと思いますが、それは唯一の最初の文書を更新し、私のコードは、この

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'); 
    }); 

私は何をすべきでしょうか?事前に感謝

答えて

1

私は実際に多くの人々がこれに問題があると思う。
multi: trueというオプションを含める必要があります。

例:デフォルト

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

Docs:

、update()メソッドは、単一のドキュメントを更新します。クエリ条件に一致するすべてのドキュメントを更新するには、 Multi Parameterを設定します。

私はなぜ彼らがこれをしたのかわかりませんが、私はそれが直感的ではないと思います。
私の意見では、すべてのドキュメントをデフォルトにする必要があります。

関連する問題