Как вы повышаете уровень документа И уровень поддокумента в одном запросе Мангуста?

#mongodb #mongoose #mongodb-query #mongoose-schema

#mongodb #мангуст #mongodb-запрос #мангуст-схема

Вопрос:

Вот мои модели:

 Ingredient {  _id: 456,  name: 'Flour', }  MenuItem {  _id: 123,  name: 'Cinnamon Rolls',  ingredients: [ Ingredient ], }, ...  

В настоящее время я использую простую массовую вставку в массив пунктов меню, надеясь, что я смогу вставлять на уровне документа и на уровне вложенных документов, но я замечаю, что все мои вложенные документы становятся сплошными. Я знаю это, потому что значение » _id «каждого поддокумента» ингредиент » изменяется. Как мне указать Мангусту, что я хочу, чтобы массив вложенных документов «ингредиенты» также был обновлен?

Вот мой текущий код:

 const menuItems = /* [array of menu items] */;  // Bulk upsert const bulkWriteMenuItemsArray = menuItems.map(menuItem =gt; ({  updateOne: {  filter: { _id: menuItem.id },  update: menuItem,  upsert: true,  }, }));  const { error, upsertedCount, modifiedCount } = await MenuItemModel.bulkWrite(bulkWriteMenuItemsArray);