オブジェクトを配列に追加するために使用できる 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」チャンネルのステータスを変更する必要があるとしましょう。次のいずれかの更新が必要です。
コレクション内のすべてのオブジェクトに新しい channelStatus {"channel" : "BAR", "status" : "done"} を追加します。
オブジェクトが既に「channel」:「BAR」の channelStatus を持っている場合、そのオブジェクトの「ステータス」を「完了」に更新するだけです。
単純に addToSet を使用すると、次のように重複が追加されます。 "}]
これを行うための受け入れ可能な方法は、最初に古いオブジェクトを削除してから、addToSet を使用して新しいオブジェクトを追加することです。しかし、1回の更新でこれを行う方法はありますか?