Na een paar uur proberen uit te zoeken waar de fout zat en waarom de database niet werd bijgewerkt, ontdekte ik dat de database daadwerkelijk werd bijgewerkt. Het probleem was dat ik de update in de mongo-shell aan het controleren was en nadat ik deze via nodejs postverzoek had bijgewerkt, verscheen deze niet als bijgewerkt in de shell. Toen ik echter de labels console.log() deed, werd deze bijgewerkt. Dus ik heb het probleem verder onderzocht en ik kwam erachter dat het probleem niet de mongo-shell was, maar onjuist gebruik van de update van de mongoose-opdracht. Ik miste het callback-argument. Na het toevoegen van de callback-functie werden de gegevens onmiddellijk bijgewerkt in de mongo-shell.
Dus in plaats van te doen:
Label.update({'_id': { $in: post.labelIds }}, {$addToSet: {postIds:req.body.id}}, {multi: true})
Vergeet niet om terugbellen toe te voegen:
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...
Of zoals het dubbele antwoord suggereert om exec() te draaien:
Label.update({'_id': { $in: post.labelIds }}, {$addToSet: {postIds:req.body.id}}, {multi: true}).exec()