У меня есть модель данных, которая выглядит как этотMongoDB: вставить элемент в массив только если определенное поле нет
{ _id: 1 some_property: some_value items: [{ item_id: item1 item_properties: [{ key1: val1, key2: val2 }] }] }
, когда я получить новый элемент с item_id = itemX, я хотел бы проверьте, находится ли элемент с этим item_id в массиве элементов. Если его нет, тогда вставьте его. Если он присутствует, я хотел бы добавить item_properties к существующим item_properties.
Я пробовал использовать $addToSet
, но это рассматривает весь элемент, а не item_id. Таким образом, результат состоял из 2 элементов с одним и тем же item_id.
Любая идея, как я могу достичь этого атомарно?
Спасибо, Aliza