sql >> Databasteknik >  >> NoSQL >> MongoDB

uppdatera flera poster med mongoosejs i node

Query#update accepterar inte options parameter, men Model.update gör. Så du skulle vilja skriva om detta som:

Page.update({status:'queued'}, {status: 'active'}, {multi: true}, 
    function(err, num) {
        console.log("updated "+num);
    }
);

Jag är inte säker på vad du försökte göra med limit ring i kedjan, men du kan inte använda det i en uppdatering.

UPPDATERA

Ovanstående fråga kommer att uppdatera alla dokument där {status: 'queued'} . Dina enda val med update är bara den första matchande {multi: false} eller alla matchar {multi: true} .

Det låter som att du behöver omarbeta saker för att ta bort dokument från din kö ett i taget och byta till findOneAndUpdate istället för update så att du har tillgång till dokumentet du har uppdaterat från 'queued' till 'active' .




  1. mongodb databas med Java play 2.0

  2. Hur tar man bort dokument efter fråga effektivt i mongo?

  3. Returnera senaste posten från underdokument i Mongodb

  4. Lägg till Expiry till Redis Cache