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

MongoDBで配列に要素を追加できない?$push演算子の使い方を解説

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

MongoDBで配列に要素を追加(プッシュ)したい場合は、$push演算子を使用します。ここでは、実際にドキュメントを含むコレクションを作成し、手順を追いながら解説していきます。

1. コレクションの作成

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

> db.demo445.insertOne({"ListOfFriends":["Robert","Mike","Sam","Carol","David","Mike"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e78f099bbc41e36cc3caec2")
}

2. 登録済みドキュメントの確認

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

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

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

{
   "_id" : ObjectId("5e78f099bbc41e36cc3caec2"),
   "ListOfFriends" : [
      "Robert",
      "Mike",
      "Sam",
      "Carol",
      "David",
      "Mike"
   ]
}

3. $pushで配列に要素を追加する

続いて、次のクエリを実行して配列に新しい要素をプッシュします。

> db.demo445.update(
...    { _id: ObjectId("5e78f099bbc41e36cc3caec2") },
...    { $push: { ListOfFriends: "Chris Brown" } }
... )
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

実行結果の「nModified」が1になっていることから、ドキュメントの更新が正常に完了したことがわかります。

4. 更新結果の確認

もう一度find()メソッドを実行して、すべてのドキュメントを表示してみましょう。

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

実行すると、次のように配列の末尾に「Chris Brown」が追加されていることを確認できます。

{
   "_id" : ObjectId("5e78f099bbc41e36cc3caec2"),
   "ListOfFriends" : [
      "Robert",
      "Mike",
      "Sam",
      "Carol",
      "David",
      "Mike",
      "Chris Brown"
   ]
}

まとめ

MongoDBで配列に要素を追加するには、update()メソッドと$push演算子を組み合わせるだけで簡単に実現できます。なお、重複する値の追加を防ぎたい場合は$addToSet演算子を使う方法もあるので、用途に応じて使い分けるとよいでしょう。

  1. MongoDBで$pushを使って配列にドキュメントを追加する方法

    MongoDBでは、$push演算子をupdate()メソッドと組み合わせて使うことで、既存の配列フィールドに新しいドキュメントを追加できます。この記事では、実際のコード例を通じてその手順を詳しく解説します。 1. コレクションとドキュメントの作成 まず、insertOne()メソッドを使って、配列フィールドを含むドキュメントを持つコレクションを作成します。 > db.demo310.insertOne({Name:Chris,details:[{Id:101,Subject:MySQL},{Id:102,Subject:MongoDB}]}); { acknowledged

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

    MongoDBで配列をプッシュするには?MongoDBで配列に要素を追加(プッシュ)するには、$push演算子を使用します。$pushは更新(update)操作だけでなく、集計フレームワーク(aggregation)の$groupステージと組み合わせることで、複数のドキュメントを1つの配列にまとめることにも活用できます。ここでは、実際にドキュメントを作成し、$pushを使って配列を生成する手順をサンプルコードとともに解説します。1. サンプルコレクションの作成まず、insertOne()メソッドを使って、ドキュメントを含むコレクションを作成します。> db.demo399.insertO