2013-11-20 16 views
6

Tôi tự hỏi nếu mongoose có một số phương pháp để cập nhật nhiều tài liệu bằng cách đặt id. Ví dụ:Cập nhật nhiều tài liệu theo id. Mongoose

for (var i = 0, l = ids.length; i < l; i++) { 
    Element.update({'_id': ids[i]}, {'visibility': visibility} ,function(err, records){ 
     if (err) { 
      return false; 
     } else { 
      return true; 
     }; 
    }); 
}; 

gì tôi muốn biết, rằng nếu mongoose có thể làm một cái gì đó như thế này:

Element.update({'_id': ids}, {'visibility': visibility}, {multi: true} ,function(err, records){ 
    if (err) { 
     return false; 
    } 
}); 

nơi id là một mảng của id, giống như [ 'id1', 'id2', 'id3'] - mảng mẫu. Cùng một câu hỏi để tìm.

Trả lời

14

Rất có thể là có. Và nó được gọi là sử dụng toán tử $in trong truy vấn mongodb để cập nhật.

db.Element.update(
    { _id: { $in: ['id1', 'id2', 'id3'] } }, 
    { $set: { visibility : yourvisibility } } 
) 

Tất cả những gì bạn cần là tìm cách triển khai $ in in mongoose.

+0

Có, bạn nói đúng, toán tử $ in hoạt động hoàn hảo đối với người chăn cừu. – user2960708

+0

Tôi có thể sử dụng cập nhật đa nhưng với lệnh lưu không? bởi vì với lưu tôi cũng đã xác nhận – Barno

+6

Có thể cập nhật thuộc tính hiển thị khác nhau cho các giá trị _id khác nhau không? – Vinay

Các vấn đề liên quan