MongoDB: подпункт документа upsert
У меня есть документы, которые выглядят примерно так, с уникальным индексом на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' во встроенном документе (предлагает изменить схему, чтобы в качестве ключа использовался идентификатор поддокумента, но это сделано два года назад, и мне интересно, есть ли сейчас лучшие решения.)