내 모델의 새 필드로 내 컬렉션의 모든 문서를 업데이트하려고합니다. 이 필드는 boolean이며 기본값은 false입니다.새로운 필드가있는 몽구스 모델 업데이트
이 질문은 이미 이전에 물어 왔지만 여전히 내 문제에 대한 해결책을 얻을 수 없다는 것을 알고 있습니다.
모든 것이 작동하지 않습니다.
내가 뭘하려에 대한 예는 여기를: 나는 변화하고 싶지 않기 때문에 그냥 내가 추가 한 필드를 추가, 모든 문서, 빈 $ 세트를 업데이트 할 -cause 빈 쿼리를 가지고 업데이트 방법 내 모델
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)
})
})
어떤 제안이?
Mongoose는 데이터베이스의 어떤 문서가 해당 필드를 이미 가지고있을 수도 있고 가지지 않을 수도 있기 때문에 모름이 어떤 문서를 모르는지 알기 때문에 (아마도 기본값으로) $ set에 업데이트를 명시 적으로 추가해야합니다 그것은 기본 (비록 그것이 더 쉽습 수도/빠른 Mongo 쉘에서 업데이트 작업을 실행할 수 있습니다) – robertklep