0

オブジェクトを配列に追加するために使用できる mongoDB 操作、またはオブジェクトが既に配列内にある場合はその値の 1 つを更新するために使用できるもの。

これが私のmongodbデータの例です:

    {
      "_id" : "1",
      "channelStatuses" : [
        {
          "channel" : "FOO",
          "status" : "done"
        }
      ]
    },
    {
      "_id" : "2",
      "channelStatuses" : [
        {
          "channel" : "BAR",
          "status" : "done"
        }
      ]
    },
    {
      "_id" : "3",
      "channelStatuses" : [
        {
          "channel" : "BAZ",
          "status" : "error"
        }
      ]
    },
    {
      "_id" : "3",
      "channelStatuses" : []
    }

私がやりたいことは、mongodb-update を使用してコレクション内のすべてのデータを更新することです。すべての「BAR」チャンネルのステータスを変更する必要があるとしましょう。次のいずれかの更新が必要です。

  1. コレクション内のすべてのオブジェクトに新しい channelStatus {"channel" : "BAR", "status" : "done"} を追加します。

  2. オブジェクトが既に「channel」:「BAR」の channelStatus を持っている場合、そのオブジェクトの「ステータス」を「完了」に更新するだけです。

単純に addToSet を使用すると、次のように重複が追加されます。 "}]

これを行うための受け入れ可能な方法は、最初に古いオブジェクトを削除してから、addToSet を使用して新しいオブジェクトを追加することです。しかし、1回の更新でこれを行う方法はありますか?

4

1 に答える 1