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

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

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

MongoDBで複数のドキュメントを一度にコレクションへ挿入するには、insert()メソッドを使用します。配列形式で複数のドキュメントを渡すことで、1回のコマンド実行でまとめて登録できます。

複数ドキュメントを挿入するサンプルコード

以下の例では、demo689というコレクションを作成し、3件のクライアント情報(名前・年齢・国)を同時に挿入しています。

> db.demo689.insert([
...    {ClientName:"Chris","ClientAge":34,"ClientCountryName":"US"},
...    {ClientName:"David","ClientAge":28,"ClientCountryName":"UK"},
...    {ClientName:"Bob","ClientAge":39,"ClientCountryName":"AUS"},
... ]);
BulkWriteResult({
    "writeErrors" : [ ],
    "writeConcernErrors" : [ ],
    "nInserted" : 3,
    "nUpserted" : 0,
    "nMatched" : 0,
    "nModified" : 0,
    "nRemoved" : 0,
    "upserted" : [ ]
})

実行結果として返されるBulkWriteResult"nInserted" : 3は、3件のドキュメントが正常に挿入されたことを示しています。エラーがなければwriteErrorsは空の配列になります。

find()メソッドで挿入結果を確認する

挿入したすべてのドキュメントを確認するには、find()メソッドを使います。

> db.demo689.find();

上記のコマンドを実行すると、以下のような出力が得られます。

{ "_id" : ObjectId("5ea580dfa7e81adc6a0b3967"), "ClientName" : "Chris", "ClientAge" : 34, "ClientCountryName" : "US" }
{ "_id" : ObjectId("5ea580dfa7e81adc6a0b3968"), "ClientName" : "David", "ClientAge" : 28, "ClientCountryName" : "UK" }
{ "_id" : ObjectId("5ea580dfa7e81adc6a0b3969"), "ClientName" : "Bob", "ClientAge" : 39, "ClientCountryName" : "AUS" }

ポイントのまとめ

  • insert()にドキュメントの配列を渡すと、一括挿入(バルクインサート)が可能です。
  • 各ドキュメントには自動的に一意の_id(ObjectId)が割り当てられます。
  • 挿入結果はBulkWriteResultオブジェクトで確認でき、成功件数やエラーの有無がわかります。

なお、新しいバージョンのMongoDBでは、単一ドキュメントの挿入にはinsertOne()、複数ドキュメントの一括挿入にはinsertMany()の使用が推奨されています。用途に応じて使い分けるとよいでしょう。

  1. Windows 10で異なるタイムゾーンの時計を追加・表示する方法

    海外に住む家族や取引先とのやり取りがある方なら、複数のタイムゾーンの現在時刻を常に把握したいと感じることは多いはずです。Windowsでは追加の時計を簡単に設定でき、Windows 10ではさらに便利な機能が使えるようになりました。 この記事では、Windows 10で追加時計を設定する基本手順に加え、Windows 10ならではの便利なテクニックもご紹介します。これらを活用すれば、複数の地域の時刻管理がぐっと楽になります。 追加時計は最大2つまで設定可能 ローカルの時刻とは別に、追加の時計を最大2つまで登録できます。まず、画面右下のシステムトレイにある日付と時刻をクリックし、表示されたカレ

  2. MySQLのSELECT DISTINCTを複数カラムに適用する方法

    MySQLでSELECT DISTINCTを複数カラムに使うには? MySQLのSELECT DISTINCTは、通常1つのカラムの重複を排除するために使われますが、複数のカラムを組み合わせて重複行を除外したい場合には、サブクエリやGROUP BYを活用したテクニックが必要になります。 この記事では、具体的なサンプルテーブルを作成しながら、複数カラムに対して実質的にDISTINCTを実現する方法を解説します。 1. サンプルテーブルの作成 まず、講師(Instructor)、受講生(Student)、技術科目(TechnicalSubject)の情報を格納するテーブルを作成します。テーブル作