Efter et par timers forsøg på at finde ud af, hvor fejlen var, og hvorfor den ikke opdaterede databasen, fandt jeg ud af, at den faktisk opdaterede databasen. Problemet var, at jeg tjekkede opdateringen i mongo shell, og efter at jeg havde opdateret den over nodejs post-anmodning, blev den ikke vist i shellen som opdateret. Men da jeg console.log() etiketterne, blev det opdateret. Så jeg undersøgte problemet nærmere, og jeg fandt ud af, at problemet ikke var mongo-skallen, men forkert brug af mongoose-kommandoopdateringen. Jeg manglede tilbagekaldsargumentet. Efter tilføjelse af tilbagekaldsfunktionen blev dataene opdateret i mongo-skallen med det samme.
Så i stedet for at gøre:
Label.update({'_id': { $in: post.labelIds }}, {$addToSet: {postIds:req.body.id}}, {multi: true})
Det må ikke glemmes at tilføje tilbagekald:
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 duplikatsvar foreslår at køre exec():
Label.update({'_id': { $in: post.labelIds }}, {$addToSet: {postIds:req.body.id}}, {multi: true}).exec()