¿Puedo hacer бразильская саванна ООН подставляют массив ООН de objetos [Объект] en un Schema de mongoose?

Довод "против" Necesito que mi Schema pueda recibir un array esta estructura:

const arrayAnswers: [
    {description: 'String', isCorrect: true},
    {description: 'String', isCorrect: false},
    {description: 'String', isCorrect: false}
]

Este es el esquema que escribo:

const mongoose = require('mongoose');
const {Schema} = mongoose;

const fields = {
  answers: [Object]
}

const question = new Schema(Object.assign(fields), {timestamps: true});

module.exports = {
  Model: mongoose.model('question', question),
  fields
};

Параграф ¿El esquema ese бразильская саванна puede сер así o шаг скрутки algún problema подставляет el [Object]?

Он трезвый leído Schema.Types.Mixed y отрезвляют subdocumentos, pero никакой sabría Комо hacer el subdocumento. Y según, el Mixed hace que se pierda la habilidad de autodetectar y guardar cambios, entonces никакой подросток sé que repercusiones puede exactamente подставляет lo que hago.

3
задан 20.12.2019, 16:49
1 ответ

Конечно же ты можешь делать это. Если структура объекта, который ты будешь хранить в твоем поле answers, - установлена, тогда ты можешь делать что-то вроде следующее:

const mongoose = require('mongoose');

const questionSchema = new mongoose.Schema({
  const answers: [{
    description: {
      type: String,
      required: 'Description field is required'
    },
    isCorrect: {
      type: Boolean,
      required: 'isCorrect field is required'
    }
  }]
}, { timestamps: true });

module.exports = {
  Model: mongoose.model('Question', questionSchema)
}

то, что мы сделали, состоит в том, чтобы определять поле answers как тип array и внутри мы установили структуру типа документа, который он будет содержать. Я использовал ограничения required на полях документа, хотя ты можешь не нуждаться в них, это dependerГЎ тебя lГіgica.

Делать это формой, которую ты пробуешь (segГєn то, что ты выставляешь в твоем вопросе) harГ, - в который тип информации, хранившийся в поле answers был типа назначенных по умолчанию Mixed.

ты Можешь читать mГЎs о типе Array из Mongoose в documentaciГіn .

Надеялся, что это помогает тебе решать твое сомнение.

1
ответ дан 21.12.2019, 12:12