Dette vil - korrekt - ikke indsætte nogen poster med event_id 1 eller 2, hvis de ikke allerede eksisterer
db.foo.update({event_id: { $in: [1,2]}}, {$inc: {visit:1}}, true, true)
Dette skyldes, at objNew
del af forespørgslen (se http://www.mongodb.org/display /DOCS/Updating#Updating-UpsertswithModifiers
) har ikke en værdi for feltet event_id
. Som et resultat vil du have brug for mindst X+1 ture til databasen, hvor X er antallet af hændelses-id'er, for at sikre, at du indsætter en post, hvis der ikke findes en for et bestemt hændelses-id (+1'en kommer fra forespørgslen ovenfor , hvilket øger besøgstælleren for eksisterende poster). For at sige det på en anden måde, hvordan ved MongoDB, at du vil bruge værdi 2 for event_id og ikke 1? Og hvorfor ikke 6?
W.r.t. batch-indsættelse med ruby, jeg tror det er muligt som følgende link antyder - selvom jeg kun har brugt Java-driveren:Batchindsættelse/-opdater ved hjælp af Mongoid?