10
Muszę zaktualizować kilka dokumentów, podając je w treści. Nie mogę ich przesłać, muszą one zostać dostarczone.Zaktualizuj wiele dokumentów, dostarczając dokumenty w treści, mongoose/mongodb
Przykład:
var persons = [
{id: 1, name'Joe', active: false},
{id:2, name:'Jane', active: false})
];
Te dane znajdują się w organizmie i chcę ustawić aktywną właściwość false.
exports.setActivePropertyOnPersons = function(input,callback){
for(var i = 0;i<input.body.length;i++){
mongoose.model('person').findOne({id:input.body[i].id}, function(err, person){
person.active = false;
person.save();
})
}
callback.send(200)
};
Kod ten nie jest dobry. Czy jest jakieś lepsze zapytanie, aby to zrobić? Nie znajduję żadnych w dokumentach.
Jest to podstawowe podejście wybierając więcej niż jeden dokument z '$ in', ale [ Komenda '.update()'] (http://docs.mongodb.org/manual/reference/method/db.collection.update/) wymaga ["multi"] (http://docs.mongodb.org/ parametr manual/reference/method/db.collection.update/# multi-parameter), aby faktycznie zmienić więcej niż pierwszy dopasowany dokument. –
Dzięki za korektę :-) Zaktualizowałem odpowiedź: – Protostome
Jak radziłbyś sobie z różnymi wartościami w aktywnej zmiennej? –