У меня есть документы, которые выглядят примерно так: уникальный индекс на bars.name
:
{ name: 'foo', bars: [ { name: 'qux', somefield: 1 } ] }
. Я хочу либо обновить поддокумент, где { name: 'foo', 'bars.name': 'qux' }
и $set: { 'bars.$.somefield': 2 }
, либо создать новый поддокумент с { name: 'qux', somefield: 2 }
под { name: 'foo' }
.
Можно ли сделать это, используя один запрос с upsert, или мне придется выпустить два отдельных?
Связано: 'upsert' во встроенном документе (предлагает изменить схему, чтобы иметь идентификатор поддокумента в качестве ключа, но это от двух лет назад и мне интересно, есть ли сейчас лучшие решения.)