Setelah menghabiskan beberapa jam mencoba mencari tahu di mana kesalahan itu dan mengapa itu tidak memperbarui basis data, saya menemukan itu benar-benar memperbarui basis data. Masalahnya adalah saya memeriksa pembaruan di mongo Shell dan setelah saya memperbaruinya melalui permintaan posting nodejs, itu tidak muncul di Shell sebagai diperbarui. Namun ketika saya console.log() labelnya, itu diperbarui. Jadi saya menyelidiki masalahnya lebih lanjut dan saya menemukan bahwa masalahnya bukan pada shell mongo, tetapi penggunaan pembaruan perintah luwak yang salah. Saya melewatkan argumen panggilan balik. Setelah menambahkan fungsi panggilan balik, data segera diperbarui di shell mongo.
Jadi, alih-alih melakukan:
Label.update({'_id': { $in: post.labelIds }}, {$addToSet: {postIds:req.body.id}}, {multi: true})
Jangan lupa untuk menambahkan panggilan balik:
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...
Atau seperti yang disarankan oleh jawaban duplikat untuk menjalankan exec():
Label.update({'_id': { $in: post.labelIds }}, {$addToSet: {postIds:req.body.id}}, {multi: true}).exec()