これは-正しく-event_id1または2のレコードがまだ存在しない場合、それらを挿入しません
db.foo.update({event_id: { $in: [1,2]}}, {$inc: {visit:1}}, true, true)
これは、objNew
が原因です。 クエリの一部( http://www.mongodb.org/displayを参照) / DOCS / Updateting#Updating-UpsertswithModifiers
)フィールドevent_id
の値がありません 。その結果、特定のevent_idにレコードが存在しない場合にレコードを確実に挿入するには、データベースへの少なくともX + 1回のトリップが必要になります。ここで、Xはevent_idの数です(+1は上記のクエリから取得されます)。 、これにより、既存のレコードの訪問カウンターが増加します)。別の言い方をすれば、MongoDBは、event_idに1ではなく値2を使用することをどのように認識しますか?そして、なぜ6ではないのですか?
に関して。ルビーを使用したバッチ挿入。次のリンクが示すように、可能だと思います。Javaドライバーのみを使用しましたが、 Mongoidを使用してバッチ挿入/更新しますか?