Điều này - một cách chính xác - sẽ không chèn bất kỳ bản ghi nào có event_id 1 hoặc 2 nếu chúng chưa tồn tại
db.foo.update({event_id: { $in: [1,2]}}, {$inc: {visit:1}}, true, true)
Điều này là do objNew
một phần của truy vấn (xem http://www.mongodb.org/display / DOCS / Đang cập nhật # Updating-UpsertswithModifier
) không có giá trị cho trường event_id
. Do đó, bạn sẽ cần ít nhất X + 1 lần truy cập đến cơ sở dữ liệu, trong đó X là số lượng event_id, để đảm bảo rằng bạn chèn một bản ghi nếu một bản ghi không tồn tại cho một event_id cụ thể (+1 đến từ truy vấn ở trên , làm tăng số lượt truy cập cho các bản ghi hiện có). Nói một cách khác, làm cách nào MongoDB biết bạn muốn sử dụng giá trị 2 cho event_id chứ không phải 1? Và tại sao không phải là 6?
W.r.t. chèn hàng loạt với ruby, tôi nghĩ có thể như liên kết sau gợi ý - mặc dù tôi chỉ sử dụng trình điều khiển Java: Chèn / cập nhật hàng loạt bằng Mongoid?