Bạn có thể sử dụng $addToSet
để thêm một mục vào mảng và $set
để cập nhật một mục hiện có trong mảng này.
Phần sau sẽ thêm một mục mới vào mảng nếu userID
không được tìm thấy trong mảng:
db.doc.update({
visits: {
"$not": {
"$elemMatch": {
"userID": 4
}
}
}
}, {
$addToSet: {
visits: {
"userID": 4,
"time": 1482607614
}
}
}, { multi: true });
Phần sau sẽ cập nhật mục mảng tài liệu con nếu nó khớp với userId
:
db.doc.update({ "visits.userID": 2 }, {
$set: {
"visits.$.time": 1482607614
}
}, { multi: true });