Detta kommer - korrekt - inte att infoga några poster med event_id 1 eller 2 om de inte redan finns
db.foo.update({event_id: { $in: [1,2]}}, {$inc: {visit:1}}, true, true)
Detta beror på att objNew
del av frågan (se http://www.mongodb.org/display /DOCS/Updating#Updating-UpsertswithModifiers
) har inget värde för fältet event_id
. Som ett resultat kommer du att behöva minst X+1-resor till databasen, där X är antalet händelse_id, för att säkerställa att du infogar en post om det inte finns någon för ett visst händelse-id (+1:an kommer från frågan ovan) , vilket ökar besöksräknaren för befintliga poster). För att säga det på ett annat sätt, hur vet MongoDB att du vill använda värde 2 för event_id och inte 1? Och varför inte 6?
W.r.t. batchinsättning med ruby, jag tror att det är möjligt som följande länk antyder - även om jag bara har använt Java-drivrutinen:Batchinfoga/uppdatera med Mongoid?