Khởi động Mongo 4.2 , db.collection.update() có thể chấp nhận một đường dẫn tổng hợp, cuối cùng cho phép cập nhật một trường dựa trên giá trị hiện tại của nó:
// { a: "Hello" }
db.collection.update(
{},
[{ $set: { a: { $concat: [ "$a", "World" ] } } }],
{ multi: true }
)
// { a: "HelloWorld" }
-
Phần đầu tiên
{}là truy vấn đối sánh, lọc tài liệu nào cần cập nhật (trong trường hợp này là tất cả tài liệu). -
Phần thứ hai
[{ $set: { a: { $concat: [ "$a", "World" ] } } }]là đường ống tổng hợp cập nhật (lưu ý dấu ngoặc vuông biểu thị việc sử dụng đường ống tổng hợp).$set(bí danh của$addFields) là một toán tử tổng hợp mới trong trường hợp này sẽ thay thế giá trị của trường (bằng cách nốiachính nó với hậu tố"World"). Lưu ý cáchađược sửa đổi trực tiếp dựa trên giá trị của chính nó ($a). -
Đừng quên
{ multi: true }, nếu không, chỉ tài liệu phù hợp đầu tiên sẽ được cập nhật.