0
你能告訴我我做錯了什麼嗎?模式聲明和子文檔
var ObjectId = Schema.Types.ObjectId;
var ProductSchema = new Schema({
name: { type: String, required: true },
price: { type: Number, required: true },
category : { type: String, required: true }
});
var OrderSchema = new Schema({
products: [{
product: {type: ObjectId, ref: 'Product'},
quantity: {type: Number}
}],
status: { type: String, required: true }
});
Product = mongoose.model('Product', ProductSchema);
Order = rmongoose.model('Order', OrderSchema);
OrderSchema.statics.addOrder = function (data, cb) {
// data: array of products ID
var newOrder = new Order();
data.data.forEach(function(element, index, array) {
Product.findOne({ '_id': element.id }, function (err, product) {
if (err) return handleError(err);
newOrder.products.push({product: product, quantity: element.quantity});
})
});
newOrder.status = 'waiting';
newOrder.save(function (err, order) {
if (err) cb(err, false);
console.log(order);
var response = json.stringify({
event: 'addOrder',
success: true,
data: order.id
});
cb(false, response);
});
}
當我添加一個訂單產品,數組總是空的,但我沒有錯誤。也許這是做錯我想要的。
客戶發送的數據很好,foreach和findOne工作正常,但push似乎什麼也沒做。
如果沒有解決方案,也許您可以嘗試幫助我找到另一個解決方案。
謝謝:)
我今天早上試着和它工作得很好。非常感謝你。 – vlncent