В моей схеме Food
у меня есть разные поля, основанные на другом поле с именем yummy
. Например:
- если
yummy
равноpancake
, мои поляdough
иjam
- если
yummy
равноpizza
, мои поляdough
,meat
иcheese
и т. д. Он работает, как и ожидалось, при сохранении документов - я просто передаю поля, которые хочу сохранить в документе, поскольку ни одно из них не требуется, кроме yummy
. Итак, если я сохраню:
{
yummy: 'pizza'
dough: 'thin'
meat : 'peperroni',
cheese: [ObjectId("59a65a4f2170d90b0436ed4b")] // refs to the cheeses collection.
}
Мой документ выглядит так, как ожидалось.
Проблема с полем type: Array
. Когда я сохраняю:
{
yummy: 'pancake',
dough: 'thick',
jam: 'blueberry'
}
Мой документ сохранен с дополнительным полем cheese: []
. В моей схеме сыр определяется следующим образом:
Mongoose.model('Food', {
...
cheese: {
type: [{ type: Mongoose.Schema.ObjectId, ref: 'Cheese' }],
required: false
},
...
});
Я проверил, нужно ли монго, чтобы в документе поле массива было предопределено как пустое в случае использования $push
в обновлении - это не так. Итак, вопрос: как мне избежать добавления пустого поля массива в мой документ при сохранении?
pizza
иpancake
- person wscourge   schedule 31.08.2017