Tôi bắt đầu với Meteor và cần trợ giúp với Mongo. Tôi có một bộ sưu tập các tên mà tôi đang hiển thị trên một danh sách và muốn có thể cập nhật một biến các mục nhập nhất định trong cơ sở dữ liệu dựa trên các tiêu chí khác. Về cơ bản những gì tôi muốn làm là:Meteor/Mongo: Tìm và cập nhật các yếu tố nhất định trong bộ sưu tập
Đối với mỗi mục nhập có đặc tính A = true và B = true, thay đổi đặc tính C thành sai. Cho đến nay, tôi đã cố gắng tìm hiểu cách Mongo có thể xử lý vòng lặp "cho mỗi" trên các phần tử của bộ sưu tập, và cho mỗi phần tử kiểm tra xem điều kiện A và B có giữ, và sau đó collection.update (phần tử, {C: false}). Điều này chứng minh là có nhiều vấn đề hơn tôi nghĩ. Tôi muốn làm một cái gì đó như thế này (sử dụng tên biến dummy):
for (i = 0; i < collection.find().count(); i++){
if (collection[i].A===true && collection[i].B===true)
collection.update(collection[i], {$set: {C: false}});
};
Tôi đã thay đổi mã cơ sở này xung quanh, nhưng tôi bắt đầu cảm nhận được rằng tôi đang thiếu một cái gì đó cơ bản về lập chỉ mục/bao bộ sưu tập làm việc trong Mongo. Bạn có thể lập chỉ mục một bộ sưu tập như thế này (và nếu vậy, đây có phải là cách thuận tiện nhất để làm những gì tôi đang cố gắng làm không?)?
Bạn có thể chấp nhận câu trả lời của riêng mình :-) – Rahul
Chỉ hoạt động với tài liệu đầu tiên phù hợp với công cụ chọn. Bạn cần. collection.update ({A: true, B: true}, {$ set: {C: false}}, 0,1); cho tất cả các hàng. –
@DavidWihl để chỉnh sửa nhiều hàng bạn cần đặt {multi: true} làm thông số thứ ba thay vì 0,1 (xem tài liệu sao băng, http://docs.meteor.com/#update). vì vậy đó sẽ là: collection.update ({A: true, B: true}, {$ set: {C: false}}, {multi: true}) –