Создать новый экземпляр модели с массивом внутри - PullRequest
0 голосов
/ 04 августа 2020

У меня следующие настройки модели:

const mongoose = require('mongoose');

const itemSchema = new mongoose.Schema({
    areas: [{
        area: {
            type: Number,
            required: true,
            enum: [0, 1, 2, 3, 4, 5],
        }
    }],
}, {
    timestamps: true
});

const Item = mongoose.model('Item', itemSchema);

module.exports = Item;

Когда я пытаюсь сохранить экземпляр в БД:

const item = new Item({
    areas: [1, 2, 3],
});

item.save();

я получаю следующую ошибку:

Item validation failed: areas: Cast to embedded failed for value "1" at path "areas"

CastError: Cast to embedded failed for value "1" at path "areas"

Почему я получаю эту ошибку? Я не могу найти, какое правило схемы я нарушил ..

1 Ответ

0 голосов
/ 04 августа 2020

Я думаю, это потому, что вы устанавливаете области как массив объектов, которые содержат свойство области, например:

[{area: 1}, {area: 2}, {area: 3}]

Возможно, вы могли бы попробовать установить его как:

areas: [{
            type: Number,
            required: true,
            enum: [0, 1, 2, 3, 4, 5],
    }],
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...