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

MongoDBで$pushを使って配列に要素を追加する方法

MongoDBで配列をプッシュするには?

MongoDBで配列に要素を追加(プッシュ)するには、$push演算子を使用します。$pushは更新(update)操作だけでなく、集計フレームワーク(aggregation)の$groupステージと組み合わせることで、複数のドキュメントを1つの配列にまとめることにも活用できます。

ここでは、実際にドキュメントを作成し、$pushを使って配列を生成する手順をサンプルコードとともに解説します。

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

まず、insertOne()メソッドを使って、ドキュメントを含むコレクションを作成します。

> db.demo399.insertOne({Name:"Chris",Age:21});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5e610339fac4d418a017856d")
}
> db.demo399.insertOne({Name:"David",Age:22});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5e610341fac4d418a017856e")
}
> db.demo399.insertOne({Name:"Chris",Age:21});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5e610355fac4d418a017856f")
}
> db.demo399.insertOne({Name:"Bob",Age:23});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5e61035efac4d418a0178570")
}
> db.demo399.insertOne({Name:"David",Age:22});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5e610364fac4d418a0178571")
}

2. 登録したドキュメントの確認

find()メソッドを使用して、コレクション内のすべてのドキュメントを表示してみましょう。

> db.demo399.find();

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

{ "_id" : ObjectId("5e610339fac4d418a017856d"), "Name" : "Chris", "Age" : 21 }
{ "_id" : ObjectId("5e610341fac4d418a017856e"), "Name" : "David", "Age" : 22 }
{ "_id" : ObjectId("5e610355fac4d418a017856f"), "Name" : "Chris", "Age" : 21 }
{ "_id" : ObjectId("5e61035efac4d418a0178570"), "Name" : "Bob", "Age" : 23 }
{ "_id" : ObjectId("5e610364fac4d418a0178571"), "Name" : "David", "Age" : 22 }

3. $pushを使って配列をプッシュする

以下は、aggregate()メソッド内の$groupステージで$pushを使用し、すべてのドキュメントを1つの配列にまとめるクエリです。

> db.demo399.aggregate(
...     [
...        {
...           $group:
...           {
...              _id: null,
...              array: { $push: { Name: "$Name", Age: "$Age" } }
...           }
...        }
...     ]
... )

実行結果は次の通りです。

{ "_id" : null, "array" : [ { "Name" : "Chris", "Age" : 21 }, { "Name" : "David", "Age" : 22 }, { "Name" : "Chris", "Age" : 21 }, { "Name" : "Bob", "Age" : 23 }, { "Name" : "David", "Age" : 22 } ] }

ポイントの解説

  • _id: nullを指定することで、コレクション内の全ドキュメントが1つのグループとして扱われます。
  • $pushにより、各ドキュメントのNameフィールドとAgeフィールドの値が順番に「array」という名前の配列へ追加されていきます。
  • _idに特定のフィールド(例:Name)を指定すれば、その値ごとにドキュメントをグループ化した配列を作成することも可能です。

このように、$push演算子を使えば、MongoDBで柔軟に配列を構築・操作することができます。

  1. MongoDBで配列内の要素数をカウントする方法

    MongoDBで配列内の要素数をカウントする基本MongoDBで配列(Array)内のアイテム数をカウントするには、lengthプロパティを使用します。この記事では、実際にコレクションを作成し、配列の要素数を取得するまでの手順を実行例付きで解説します。1. コレクションにドキュメントを挿入するまず、insertOne()メソッドを使って、配列フィールドを持つドキュメントを含むコレクションを作成しましょう。> db.demo440.insertOne( ...    { ...       "Name":"Ch

  2. MongoDBで配列の要素を削除するには?$pull演算子の使い方を解説

    MongoDBで配列から要素を削除する基本MongoDBで配列内の要素を削除したい場合は、$pull演算子を使用します。$pullは、既存の配列から指定した値、または条件に一致するすべてのインスタンスを取り除くための更新演算子です。この記事では、実際にコレクションを作成し、ネストされた配列から特定の要素を削除する手順を順番に解説します。サンプルコレクションの作成まず、ドキュメントを含むコレクションを作成しましょう。ここでは「software」フィールドの中に「services」という配列を持つドキュメントを挿入します。db.demo541.insertOne({software:{servic