Това - правилно - няма да вмъкне никакви записи с event_id 1 или 2, ако те вече не съществуват
db.foo.update({event_id: { $in: [1,2]}}, {$inc: {visit:1}}, true, true)
Това е така, защото objNew
част от заявката (вижте http://www.mongodb.org/display /DOCS/Updating#Updating-UpsertswithModifiers
) няма стойност за поле event_id
. В резултат на това ще имате нужда от поне X+1 пътувания до базата данни, където X е броят на event_ids, за да сте сигурни, че вмъквате запис, ако такъв не съществува за определен event_id (+1 идва от заявката по-горе , което увеличава брояча на посещенията за съществуващи записи). За да го кажем по различен начин, как MongoDB знае, че искате да използвате стойност 2 за event_id, а не 1? А защо не 6?
W.r.t. пакетно вмъкване с ruby, мисля, че е възможно, както подсказва следната връзка - въпреки че съм използвал само Java драйвера:Пакетно вмъкване/актуализация с помощта на Mongoid?