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

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

MongoDBで大量のデータを一度に登録したい場合は、insertMany()メソッドを使用します。insertMany()を使うことで、1回のコマンド実行でコレクションに複数のドキュメントをまとめて挿入できます。

サンプルコレクションの作成

まずは、複数のドキュメントを含むコレクションを作成してみましょう。以下の例では、「demo729」というコレクションに、銀行名・カード種別・顧客情報を含む3件のドキュメントを挿入しています。

> db.demo729.insertMany( [
...    { BankName:"HDFC Bank",cardType:"Credit","CustomerName":[{Name:"Chris",Age:25}]},
...    { BankName:"ICICI Bank",cardType:"Debit","CustomerName":[{Name:"Bob",Age:22}]},
...    { BankName:"Kotak Bank",cardType:"Debit","CustomerName":[{Name:"David",Age:23}]}
... ] );
{
   "acknowledged" : true,
   "insertedIds" : [
      ObjectId("5eac510d56e85a39df5f6333"),
      ObjectId("5eac510d56e85a39df5f6334"),
      ObjectId("5eac510d56e85a39df5f6335")
   ]
}

実行結果を見ると、"acknowledged": true が返され、insertedIds には各ドキュメントに自動的に割り当てられたObjectIdのリストが格納されています。これにより、3件のドキュメントが正常に挿入されたことが確認できます。

挿入したドキュメントの確認

コレクション内のすべてのドキュメントを表示するには、find()メソッドを使用します。pretty()を組み合わせると、整形されて読みやすい形式で出力されます。

> db.demo729.find().pretty();

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

{
   "_id" : ObjectId("5eac510d56e85a39df5f6333"),
   "BankName" : "HDFC Bank",
   "cardType" : "Credit",
   "CustomerName" : [
      {
         "Name" : "Chris",
         "Age" : 25
      }
   ]
}
{
   "_id" : ObjectId("5eac510d56e85a39df5f6334"),
   "BankName" : "ICICI Bank",
   "cardType" : "Debit",
   "CustomerName" : [
      {
         "Name" : "Bob",
         "Age" : 22
      }
   ]
}
{
   "_id" : ObjectId("5eac510d56e85a39df5f6335"),
   "BankName" : "Kotak Bank",
   "cardType" : "Debit",
   "CustomerName" : [
      {
         "Name" : "David",
         "Age" : 23
      }
   ]
}

まとめ

このように、insertMany()を使えば、配列として渡した複数のドキュメントを1回の操作でコレクションに追加できます。insertOne()を繰り返し呼び出すよりもネットワーク通信の回数を抑えられるため、大量データの投入には効率的です。なお、デフォルトでは先頭から順番に(ordered)挿入が行われ、エラーが発生した時点で処理が中断されますが、オプションとして { ordered: false } を指定すれば、エラーが発生しても残りのドキュメントの挿入を継続させることも可能です。

  1. MongoDBの_idフィールドを非表示にする方法

    MongoDBの_idフィールドを非表示にする方法MongoDBでは、find()メソッドでドキュメントを検索すると、デフォルトで_idフィールド(ObjectId)が必ず結果に含まれます。しかし、射影(プロジェクション)という仕組みを使えば、この_idフィールドを非表示にし、必要なフィールドだけを取得することが可能です。本記事では、具体的な手順をサンプルコード付きで解説します。1. コレクションとドキュメントの作成まず、サンプル用のコレクションを作成し、ドキュメントを挿入します。> db.demo575.insertOne({id:101, Information:{Name:&quo

  2. C#で学ぶ挿入ソート(Insertion Sort)の基本と実装方法

    挿入ソートとは挿入ソート(Insertion Sort)は、配列から要素を1つずつ取り出し、その要素を配列内の正しい位置に挿入していくソートアルゴリズムです。この処理を繰り返すことで、最終的に配列全体が昇順に並べ替えられます。トランプの手札を整理するイメージに近く、直感的に理解しやすいのが特徴です。以下は、C#で挿入ソートを実装したサンプルプログラムです。サンプルコードusing System; namespace InsertionSortDemo { class Example { static void Main(string[] args) {