#javascript #node.js #mongoose
#javascript #node.js #мангуст
Вопрос:
Я пытаюсь сохранить новую запись документа, и некоторые из полей опущены, и я не смог понять, почему.
Здесь я устанавливаю свой объект order
var obj = new Order(orderObj);
console.log('orderObj', orderObj);
console.log('obj', obj);
вывод из console.log:
orderObj { customerId: '5806e2a1759fd9ad7a1f60eb',
products:
[ { productId: '5806e7e3d0073cb4d2946aad',
customerPrice: 100,
notes: 'test',
originalPrice: 99.95,
priceOverride: true } ],
notes: 'some optional order notes',
createdBy: 'test',
total: 99.95 }
obj { customerId: 5806e2a1759fd9ad7a1f60eb,
notes: 'some optional order notes',
createdBy: 'test',
_id: 5808171e802121505e33b252,
shipped: false,
shippedDate: 2016-10-20T01:00:14.019Z,
status: 'Created, Not Shipped',
products:
[ { productId: 5806e7e3d0073cb4d2946aad,
_id: 5808171e802121505e33b253,
quantity: 1 } ] }
Вот моя схема:
var orderSchema = new mongoose.Schema({
customerId: { type: mongoose.Schema.Types.ObjectId, ref: 'Customer'},
products: [{
productId: { type: mongoose.Schema.Types.ObjectId, ref: 'Product'},
quantity: { type: Number, default: 1 },
originalPrice: { Type: Number },
customerPrice: { Type: Number },
priceOverride: { Type: Boolean, default: false },
notes: { Type: String }
}],
notes: String,
status: { type: String, default: "Created, Not Shipped" },
orderDate: { type: Date },
shippedDate: { type: Date, default: Date.now },
shipped: { type: Boolean, default: false },
total: {Type: Number, default: 0.00 },
createdBy: { type: String }
}, schemaOptions);
Я не могу понять, почему поля total и product (originalPrice, priceOverride) удаляются из объекта экземпляра схемы мангуста.
Ответ №1:
Конечно, я понял это сразу после того, как опубликовал этот вопрос. Тип в схеме был указан как Type вместо type.
Ответ №2:
[этот ответ предназначен для записи] У меня была такая же проблема, и в схеме, где maxconnections
и roomNo
не сохранялись, у меня была схема
maxconnections: {type: Number | String },
roomNo: {type: Number | String },
изменил его на
maxconnections: {type: Number },
roomNo: {type: String},
и теперь он работает нормально (!._.)