sql >> データベース >  >> NoSQL >> MongoDB

MongoDbで複数のレコードをアップサートする

    これは-正しく-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を使用してバッチ挿入/更新しますか?



    1. MongoCollection<Document>で検索

    2. 2つのコレクションのmongodiffを比較する

    3. SpringDataMongoDBを使用してGridFSObjectIdでバイナリストリームを取得する方法

    4. mongo dbスキーマの円を定義するにはどうすればよいですか?