След няколко часа, прекарани в опити да разбера къде е грешката и защо не се актуализира базата данни, открих, че всъщност актуализира базата данни. Проблемът беше, че проверявах актуализацията в mongo shell и след като я актуализирах през nodejs post request, тя не се появи в shell като актуализирана. Когато обаче console.log() етикетите, той беше актуализиран. Така че проучих проблема допълнително и открих, че проблемът не е обвивката на mongo, а неправилното използване на актуализация на командата mongoose. Липсваше ми аргументът за обратно извикване. След добавяне на функцията за обратно извикване, данните бяха актуализирани незабавно в mongo shell.
Така че вместо да правите:
Label.update({'_id': { $in: post.labelIds }}, {$addToSet: {postIds:req.body.id}}, {multi: true})
Не трябва да се забравя да добавите обратно извикване:
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...
Или както предлага дублираният отговор, изпълнявайки exec():
Label.update({'_id': { $in: post.labelIds }}, {$addToSet: {postIds:req.body.id}}, {multi: true}).exec()