sql >> Databasteknik >  >> NoSQL >> MongoDB

Mongoose uppdatera flera dokument uppdaterar ingenting

Efter några timmars försök att ta reda på var felet var och varför det inte uppdaterade databasen, fick jag reda på att det faktiskt uppdaterade databasen. Problemet var att jag kollade uppdateringen i mongo shell och efter att jag uppdaterade den över nodejs post request, visades den inte i skalet som uppdaterad. Men när jag console.log() etiketterna uppdaterades den. Så jag undersökte problemet ytterligare och jag fick reda på att problemet inte var mongo-skalet, utan felaktig användning av mongoose-kommandouppdateringen. Jag saknade callback-argumentet. Efter att ha lagt till återuppringningsfunktionen uppdaterades data i mongoskalet omedelbart.

Så istället för att göra:

Label.update({'_id': { $in: post.labelIds }}, {$addToSet: {postIds:req.body.id}}, {multi: true})

Det får inte glömmas bort att lägga till återuppringning:

Label.update({'_id': { $in: post.labelIds }}, {$addToSet: {postIds:req.body.id}}, {multi: true}, function(err, affected) {
   if(err)
      console.log(err)
   else
      console.log(affected)
      // After successful update, redirect here to another page...

Eller som dubblettsvar föreslår att köra exec():

Label.update({'_id': { $in: post.labelIds }}, {$addToSet: {postIds:req.body.id}}, {multi: true}).exec()



  1. Hur ansluter jag Django ORM till mongoatlas?

  2. Meteor enkelt schema för mongo geo platsdata

  3. Använder findOne i mongodb för att få element med max id

  4. Hur använder man $regex i mongodb?