MongoDBに配列値を保存する方法【insertOne()の使い方を解説】
MongoDBでは、フィールドの値として配列やドキュメントの配列をそのまま保存できます。本記事では、insertOne()メソッドを使って、複数のユーザー情報を含む配列値をコレクションに挿入する手順を解説します。
1. 配列値を含むドキュメントを挿入する
まず、配列値を格納したドキュメントを持つコレクションを作成しましょう。以下の例では、demo321というコレクションに、UserDetailsフィールドとしてユーザー情報の配列を保存しています。
> db.demo321.insertOne({"UserDetails":[{"UserId":101,"UserName":"Chris"},{"UserId":102,"UserName":"Mike"}]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e511248f8647eb59e56206a")
}
> db.demo321.insertOne({"UserDetails":[{"UserId":103,"UserName":"Bob"},{"UserId":104,"UserName":"Sam"}]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e511259f8647eb59e56206b")
}
このように、insertOne()の引数に渡すドキュメントの中で、フィールドの値にオブジェクトの配列を指定するだけで、MongoDBはそれをそのまま保存してくれます。特別なスキーマ定義は不要です。
2. find()メソッドで登録データを確認する
次に、find()メソッドを使って、コレクション内のすべてのドキュメントを表示してみましょう。
> db.demo321.find();
出力結果
{ "_id" : ObjectId("5e511248f8647eb59e56206a"), "UserDetails" : [ { "UserId" : 101, "UserName" : "Chris" }, { "UserId" : 102, "UserName" : "Mike" } ] }
{ "_id" : ObjectId("5e511259f8647eb59e56206b"), "UserDetails" : [ { "UserId" : 103, "UserName" : "Bob" }, { "UserId" : 104, "UserName" : "Sam" } ] }
まとめ
MongoDBはドキュメント指向データベースであるため、配列やネストされたオブジェクトを柔軟に扱えます。上記のようにinsertOne()で配列値を含むドキュメントを挿入すれば、リレーショナルデータベースのようにテーブルを分割することなく、関連するデータをひとつのドキュメントとして管理できます。これは、ユーザーとその詳細情報のように親子関係にあるデータを扱う際に特に便利です。
-
MongoDBの配列に追加・連結するには?$concatArrays演算子の使い方
MongoDBで配列を追加・連結するには?MongoDBで配列に別の配列を追加(連結)したい場合には、集計(アグリゲーション)フレームワークの$concatArrays演算子を使用します。$concatArraysは、複数の配列を1つに結合した新しい配列を返す演算子で、MongoDB 3.2以降で利用可能です。この記事では、実際にコレクションを作成し、「FirstName」と「LastName」という2つの配列フィールドを$concatArraysで連結するまでの手順を、サンプルコードとともに解説します。1. サンプルコレクションの作成まず、insertOne()メソッドを使ってドキュメントを
-
MongoDBで配列の要素を削除するには?$pull演算子の使い方を解説
MongoDBで配列から要素を削除する基本MongoDBで配列内の要素を削除したい場合は、$pull演算子を使用します。$pullは、既存の配列から指定した値、または条件に一致するすべてのインスタンスを取り除くための更新演算子です。この記事では、実際にコレクションを作成し、ネストされた配列から特定の要素を削除する手順を順番に解説します。サンプルコレクションの作成まず、ドキュメントを含むコレクションを作成しましょう。ここでは「software」フィールドの中に「services」という配列を持つドキュメントを挿入します。db.demo541.insertOne({software:{servic