Как сделать вложенную схему в узлах

#node.js #express #mongoose

Вопрос:

имя:»салман,

белок:23,

углеводов:23,

калорийность:1221,

жиры:12,

состав:{

соль:1 чайная ложка,

……

} Мне нужна такая схема, как эта, как я могу создать схему этого с помощью мангуста nodejs, а также как я могу добавить данные в эту вложенную схему, потому что я получаю ошибку

Комментарии:

1. Какая ошибка? отправьте более подробную информацию

2. основная проблема заключается в том, как я могу создать схему, должен ли я создать массив для ингредиента, если вы можете поговорить??

Ответ №1:

Изначально вы должны создать схему таблицы следующим образом:

 const mongoose = require('mongoose');  // Health Schema const HealthSchema = new mongoose.Schema({  name: {  type: String,  },  protein: {  type: String,  },  carbs: {  type: String,  },  calorie: {  type: String,  },  fats: {  type: String,  },  ingredients: {  type: object,  default: {  salt: '',  fibre: ''  }  }, });  module.exports = mongoose.model(  'health',  HealthSchema );   

Здесь объекты ингредиентов предварительно задали имя ключа. Поэтому вам нужно просто передать значение во время создания.

Ответ №2:

Я собираюсь пропустить здесь много вещей.

В вашей схеме сделайте что-то вроде,
ingredients:[String]

при создании новых данных делайте что-то вроде

const healtData= await new healtData({... the data here})

сделайте что-нибудь подобное, прежде чем вызывать save

healthData.ingredients.push(ingredient)

healthData.save()

Комментарии:

1. сэр, не могли бы вы, пожалуйста, уточнить данные о создании, потому что, сэр, в каждом блюде есть новые ингредиенты, и они варьируются от блюда к блюду

2. Можете ли вы просто прикрепить скриншот того, как вы это делаете в настоящее время, и мы сможем сделать это оттуда? насколько я могу понять, вы хотите создать коллекцию рецептов, верно?

3. да, сэр, я собираю коллекцию рецептов, как будто у меня есть блюдо из курицы тандури, поэтому я должен добавить, сколько в нем углеводов, белков, жиров и всего остального, а также я хочу добавить поле ингредиентов, которое содержит ингредиент, и этот ингредиент варьируется от блюда к блюду