私は自分のモデルで宣言する新しいフィールドを持つコレクション内のすべてのドキュメントを更新しようとしています。このフィールドはbooleanで、デフォルト値はfalseです。新しいフィールドでマングースモデルを更新する
私はこの質問が以前に尋ねられていることは知っていますが、それでも私の問題の解決策を得ることはできません。
すべて私は働かないでください。
ここで私が試した例: 空のクエリを持つ更新メソッド-causeすべてのドキュメントを更新したい場合は、 と空の$ setを変更する必要はないので、追加したフィールドを追加します私のモデルで
User.update({},{},{multi: true},function(err,num) {
if (err){
console.log(err);
}
console.log(num);
console.log("all documents were updated with new field)
})
別の試み:
User.find({},function (err,docs) {
async.each(docs,function (doc,cb) {
doc.save(function (err) {
console.log(err);
cb();
})
},function() {
console.log("all documents were saved with new field)
})
})
任意の提案ですか?
データベース内のどのドキュメントがすでにそのフィールドを持っているか持っていないかわからないので、$ set(デフォルト値)でフィールドを明示的に追加する必要がありますそれはデフォルトを設定する必要があります(ただし、Mongoシェルから更新操作を実行する方が簡単です) – robertklep