Toto – správně – nevloží žádné záznamy s event_id 1 nebo 2, pokud již neexistují
db.foo.update({event_id: { $in: [1,2]}}, {$inc: {visit:1}}, true, true)
Je to proto, že objNew
část dotazu (viz http://www.mongodb.org/display /DOCS/Updating#Updating-UpsertswithModifiers
) nemá hodnotu pro pole event_id
. V důsledku toho budete potřebovat alespoň X+1 výletů do databáze, kde X je počet event_ids, abyste zajistili, že vložíte záznam, pokud žádný pro konkrétní event_id neexistuje (+1 pochází z dotazu výše , což zvyšuje počítadlo návštěv pro stávající záznamy). Abych to řekl jinak, jak MongoDB ví, že chcete použít hodnotu 2 pro event_id a ne 1? A proč ne 6?
W.r.t. dávkové vložení pomocí ruby, myslím, že je to možné, jak naznačuje následující odkaz - ačkoli jsem použil pouze ovladač Java:Dávkové vložení/aktualizace pomocí Mongoid?