Bản cập nhật update
câu lệnh không chính xác, có đối số không đúng chỗ - bạn đang đặt nhiều $set
các hoạt động và tùy chọn như các tham số khác nhau cho phương thức cập nhật; chúng phải nằm dưới các thông số cập nhật được chỉ định riêng biệt. Cú pháp đúng Node.js
là:
update(selector, document, options, callback)
nơi selector
là một đối tượng là bộ chọn / truy vấn cho hoạt động cập nhật, document
cũng là một đối tượng là tài liệu cập nhật và cuối cùng là một options
đối tượng theo mặc định là null và có cài đặt cập nhật tùy chọn.
Bạn đang làm đây
update(selector, document, selector, document, options, options, callback)
Trong đó mongo đang cập nhật bộ sưu tập bằng cách sử dụng hai tham số đầu tiên là chính xác và nó tự nhiên ném ra lỗi
vì bạn đã chỉ định quá nhiều tham số không chính xác.
Ngoài ra, bạn đã sử dụng sai toán tử vị trí. Nó phải là một phần của tài liệu cần được cập nhật, không phải trong truy vấn.
Để triển khai chính xác, hãy làm theo bản cập nhật này
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 }
)