Theo sự cố này New operator to update all matching items in an array
, hiện tại không có thao tác nào để thực hiện điều đó trong mongodb. Cảm thấy rất buồn, vấn đề này kéo dài trong 6 năm.
Có thể có một công việc xung quanh trong mongo shell như bên dưới.
> db.comments
.find({})
.forEach(function(doc) {
doc.comments.map(function(c) {
if (c.active == 1) {
c.status = 0;
}
});
db.comments.update(
{_id: doc._id},
{$set: {comments: doc.comments}});
});