Mongo の配列にフィールドを追加する方法

MongoDBでは、配列にフィールドを追加するために次のメソッドを使用できます。

  1. オブジェクトにフィールドを追加する$addFields演算子:$addFields演算子は、配列が格納されたオブジェクトに新しい項目を追加するために利用できます.たとえば、「students」という配列があると仮定した場合、次のような問合わせを使用して、各生徒に「grade」というフィールドを追加できます:
  2. “db.collection.aggregate([{ $addFields: { “students.grade”: “A” } }])“
  3. $addFields 演算子は配列要素の各ドキュメントにフィールドを追加するものであり、新しい配列要素を追加するものではない点に注意してください。
  4. $set オペレーターを使用して配列の各ドキュメントに新しいフィールドを追加する:$set オペレーターは、配列の各ドキュメントに新しいフィールドを追加するために使用できます。たとえば、「students」という名前の配列がある場合、次のクエリを使用して、各学生に「grade」という名前のフィールドを追加できます。
  5. db.collection.updateMany({}, { $set: { “students.$.grade”: “A” } })
  6. 配列内の各文書に「grade」というフィールドを追加し、その値を「A」に設定します。
  7. $map演算子でフィールドを追加します。$map演算子は、配列内の各ドキュメントに新しいフィールドを追加するために使用できます。たとえば、”students”という名前の配列があるとします。次のクエリを使用して、各学生に”grade”という名前のフィールドを追加できます。
  8. db.collection.aggregate([ { $addFields: { “students”: { $map: { input: “$students”, as: “student”, in: { $mergeObjects: [ “$$student”, { “grade”: “A” } ] } } } } } ])
  9. この操作では$map演算子を使用して配列内の各ドキュメントが処理され、$mergeObjects演算子を使用して新しいフィールド”grade”が各ドキュメントに追加されます。

データモデルとクエリニーズに応じて、これらの手法を選択して使用できます。

bannerAds