Hãy thử mã sau:
db.collection.find(your_querry).forEach(function(doc) {
doc.field1 = doc.field2.length;
db.collection.save(doc);
});
Bạn có thể sử dụng your_querry
để chỉ chọn một phần của bộ sưu tập gốc thực hiện cập nhật. Nếu bạn muốn xử lý toàn bộ bộ sưu tập, hãy sử dụng your_querry = {}
.
Nếu bạn muốn tất cả các hoạt động là nguyên tử, hãy sử dụng update
thay vì save
:
db.collection.find( your_querry, { field2: 1 } ).forEach(function(doc) {
db.collection.update({ _id: doc._id },{ $set: { field1: doc.field2.length } } );
});