У меня есть 2 схемы.Первый из созданного мной модуля, а второй - для расширения указанного модуля.
Многое работает, но есть проблема.
const ProductSchema = new Schema({
ean: {type: String, required: false, index: false},
title: {type: String, required: true, index: false},
description: {type: String, required: true},
stock: {
amount: {type: Number, required: true, default: 0},
track: {type: Boolean, required: true, default: true},
},
relatedProducts: [{type: Schema.Types.ObjectId, ref: 'Product'}],
images: [{type: String, required: false}],
live: {type: Boolean, required: true, default: false},
}, {
minimize: false,
strict: false,
timestamps: {createdOn: 'createdOn', updatedOn: 'updatedOn'}
});
mongoose.model('Product', ProductSchema);
const ExtendedSchema = new mongoose.Schema({
preOrder: {
isPreOrder: {type: Boolean, default: false},
openFrom: {type: Date},
openTill: {type: Date},
releaseDate: {type: Date}
},
});
ProductSchema.add(ExtendedSchema);
Это работает, ноКогда я просматриваю документ в модели Продукта со свойством preOrder
, установленным со значением {isPreOrder: false}
, и пытаюсь его зарегистрировать, появляется следующее:
{
"stock": {
"amount": 1,
"track": true
},
"preOrder": {
"isPreOrder": false
},
"relatedProducts": [],
"images": [],
"_id": "5c8c5d2c3e6bc4e97f8dbe30",
"sku": "123456",
"title": "Test product",
"description": "Hi"
}
Но когда я пытаюсь получить доступ product.preOrder.isPreOrder
, выдается следующая ошибка: Cannot read property 'isPreOrder' of undefined
.НО, product.get('preOrder').isPreOrder
работает.
Может кто-нибудь уточнить это для меня и, возможно, сказать мне, как я могу это исправить, чтобы мне не нужно было вызывать .get
с каждым отдельным свойством, которое может или не может бытьдобавлено позже?