MongoDB
 Computer >> コンピューター >  >> プログラミング >> MongoDB

MongoDBでドキュメントを一括挿入する方法

MongoDBでは、バルク操作(一括操作)を利用することで、複数のドキュメントを効率的にまとめて挿入できます。本記事では、initializeUnorderedBulkOp()insert()を使ったドキュメントの一括挿入の手順を、実際のコード例とともにわかりやすく解説します。

1. バルク操作の初期化とドキュメントの挿入

まず、initializeUnorderedBulkOp()メソッドでバルク操作オブジェクトを初期化し、insert()で挿入したいドキュメントを順に追加していきます。最後にexecute()を実行することで、まとめてデータベースに書き込まれます。

> var manyDocument = db.demo255.initializeUnorderedBulkOp();
> manyDocument.insert( { "Name":"Chris",Age:24} );
> manyDocument.insert( {"Name":"Bob",Age:22 } );
> manyDocument.insert( { "Name":"David",Age:23 } );
> manyDocument.execute();
BulkWriteResult({
    "writeErrors" : [ ],
    "writeConcernErrors" : [ ],
    "nInserted" : 3,
    "nUpserted" : 0,
    "nMatched" : 0,
    "nModified" : 0,
    "nRemoved" : 0,
    "upserted" : [ ]
})

2. 実行結果(BulkWriteResult)の読み方

execute()を実行すると、BulkWriteResultという結果オブジェクトが返されます。主なフィールドの意味は以下の通りです。

  • writeErrors / writeConcernErrors: 書き込み時に発生したエラー。空の配列であれば問題なし
  • nInserted: 正常に挿入されたドキュメント数(この例では3件)
  • nUpserted / nMatched / nModified / nRemoved: 更新・削除系の操作結果。今回は挿入のみのためすべて0

3. find()メソッドで挿入されたドキュメントを確認

挿入が完了したら、find()メソッドを使ってコレクション内のすべてのドキュメントを表示して確認しましょう。

> db.demo255.find();

このクエリを実行すると、次のような出力が得られます。

{ "_id" : ObjectId("5e47a25e1627c0c63e7dba82"), "Name" : "Chris", "Age" : 24 }
{ "_id" : ObjectId("5e47a25e1627c0c63e7dba83"), "Name" : "Bob", "Age" : 22 }
{ "_id" : ObjectId("5e47a25e1627c0c63e7dba84"), "Name" : "David", "Age" : 23 }

まとめ

このように、initializeUnorderedBulkOp()でバルク操作を初期化し、insert()でドキュメントを追加した後にexecute()を呼び出すだけで、複数ドキュメントの一括挿入が簡単に行えます。大量のデータを扱う場合、個別に挿入するよりもパフォーマンス面で大きく有利になるため、ぜひ活用してみてください。

  1. MongoDBで複数のドキュメントを一度に挿入するinsert()の使い方

    MongoDBで複数のドキュメントを一括挿入する方法MongoDBで複数のドキュメントを一度にコレクションへ挿入するには、insert()メソッドを使用します。配列形式で複数のドキュメントを渡すことで、1回のコマンド実行でまとめて登録できます。複数ドキュメントを挿入するサンプルコード以下の例では、demo689というコレクションを作成し、3件のクライアント情報(名前・年齢・国)を同時に挿入しています。> db.demo689.insert([ ... {ClientName:Chris,ClientAge:34,ClientCountryName:US}, ... {Clie

  2. MongoDBで$in演算子を使って特定の複数ドキュメントを取得する方法

    MongoDBで特定の複数のドキュメントを一度に取得したい場合、$in 演算子を使用します。$in は、指定した配列内のいずれかの値に一致するドキュメントだけを抽出できる便利な比較演算子です。この記事では、実際にコレクションを作成し、$in を使って特定の複数ドキュメントを取得する手順を順番に解説します。1. コレクションの作成とドキュメントの挿入まず、insertOne() メソッドを使ってサンプル用のコレクション「demo593」にドキュメントを挿入します。> db.demo593.insertOne({id:1,Name:Chris});{ acknowledged : tr