2014-11-01 17 views
10

Vücudun sağlamasını sağlayarak çeşitli belgeleri güncellemeye ihtiyacım var. Onları sorgulayamıyorum, sağlanmalılar.Vücudun belgelerini sağlayarak çoklu belgeleri güncelleyin, fangöz/mongodb

Örnek:

var persons = [ 
    {id: 1, name'Joe', active: false}, 
    {id:2, name:'Jane', active: false}) 
]; 

Bu veriler gövdesi sağlanır ve yanlış aktif özelliğini ayarlamak istiyoruz.

Bu kod iyi değil. Bunu yapmak için daha iyi bir sorgu var mı? Dokümanlarda bulamadım.

cevap

19

"$in" operatörü ile güncelleme komutunu birlikte kullanmayı deneyin: [

var ids= []; 
for (var i=0 i<input.body.length; ++i) { 
    ids.push(input.body[i].id); 
} 

mongoose.model('person').update({id : {"$in":ids}}, {active:false} , {multi: true} , function(err,docs) { ... }); 

Umut bu Bu `$ Alanı`nda sahip birden fazla belgeyi seçerek temel yaklaşımdır

+4

yardımcı olur, ancak .update() '] (http://docs.mongodb.org/manual/reference/method/db.collection.update/) komutunun [" multi "] olması gerekiyor (http://docs.mongodb.org/ Eşleştirilen ilk belgeden daha fazla değişiklik yapmak için el ile/başvuru/yöntem/db.collection.update/# çoklu parametre) parametresi. –

+0

Düzeltme için teşekkürler :-) Yanıtı güncelledim – Protostome

+2

Aktif değerindeki farklı değerleri nasıl ele alırsınız? –