update
pernyataan salah, argumennya salah tempat - Anda memasukkan beberapa $set
operasi dan opsi sebagai parameter berbeda untuk metode pembaruan; mereka harus berada di bawah parameter pembaruan yang ditunjuk secara terpisah. Node.js sintaks
yang benar adalah:
update(selector, document, options, callback)
di mana selector
adalah objek yang merupakan pemilih/kueri untuk operasi pembaruan, document
juga merupakan objek yang merupakan dokumen pembaruan dan akhirnya sebuah options
objek yang secara default adalah null dan memiliki pengaturan pembaruan opsional.
Ini dia
update(selector, document, selector, document, options, options, callback)
Di mana mongo memperbarui koleksi menggunakan dua parameter pertama sebagai benar dan secara alami melempar kesalahan
karena Anda memiliki terlalu banyak parameter yang salah ditentukan.
Juga, Anda memiliki penggunaan operator posisi yang salah. Itu harus menjadi bagian dari dokumen yang akan diperbarui, bukan dalam kueri.
Untuk implementasi yang benar, ikuti pembaruan ini
db.getCollection('profiles').update(
/* selector */
{
"_id": ObjectId("57a9aa24e93864e02d91283c"),
"ratings.round": 1
},
/* update document */
{
"$set": {
"presentRound": 2,
"interviewStatus": "in process",
"scheduleInterviewStatus": false,
"ratings.$.roundStatus": "selected"
}
},
/* optional settings */
{ upsert: true, multi: true }
)