2015-09-28 50 views
-1

我做的做這樣的事情(請原諒我講的例子的愚蠢... :-):貓鼬:如何更新*符合條件的所有人*

var dateRef = new Date(1990, 1, 1); 
Person 
    .where('dateOfBirth').gte(dateRef) 
    .update({ $set: { isYoung: true } }, function (err, count) { 
    }) 
; 

即:我想$設置爲trueisYoung每個人的文件其出生日期(dateOfBirth)晚於參考日期。

我的代碼僅適用於其中一個人,即使(當前)許多文檔符合條件(所有年輕人,這裏... :-)。

任何線索?


PS:作爲獎金,我想設置 -matching人isYoungfalse也一樣,如果可能的話...

回答

1

您應該使用multi:true在更新來更新多個像這樣的文件:

var dateRef = new Date(1990, 1, 1); 
Person 
    .where('dateOfBirth').gte(dateRef) 
    .update({ $set: { isYoung: true } },{multi: true}, function (err, count) { 
    }); 
+0

沒有爲我工作。調用Person.update(...)請參閱http://stackoverflow.com/questions/33876655/update-of-multiple-documents-with-mongoose-fails/33879548#33879548 –