MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

aggiorna più record usando mongoosejs in node

Query#update non accetta options parametro, ma Model.update fa. Quindi vorresti riscriverlo come:

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

Non sono sicuro di cosa stavi cercando di fare con il limit chiama nella catena, ma non puoi usarlo in un aggiornamento.

AGGIORNAMENTO

La query precedente aggiornerà tutti i documenti in cui {status: 'queued'} . Le tue uniche scelte con update sono solo i primi corrispondenti {multi: false} o tutte le corrispondenze {multi: true} .

Sembra che tu debba rielaborare le cose per togliere i documenti dalla coda uno alla volta e passare a findOneAndUpdate invece di update quindi hai accesso al documento che hai aggiornato da 'queued' su 'active' .