【发布时间】:2014-03-17 13:02:19
【问题描述】:
在我的集合架构中,我的代码如下
产品.js
var mongoose = require('mongoose');
var ProductSchema = new Schema({
name : String,
id : String,
price : Number
});
mongoose.model('Product', ProductSchema);
WishList.js
var mongoose = require('mongoose');
var WishListSchema = new Schema({
customer : String,
products: {
type: [{
type: Schema.ObjectId,
ref: 'Product'
}]
},
billAmount : Number
});
WishListSchema.methods = {
addProduct: function(_product) {
var deferred = q.defer();
var Product= mongoose.model('Product');
var self = this;
var product = new Product(_product);
product.save(function(err) {
console.log(err);
if (err) {
return deferred.reject(err);
} else {
self.update({
$push: {
products : product
}
}, function(err) {
if (err) {
return deferred.reject(err);
} else {
return deferred.resolve();
}
});
}
});
return deferred.promise;
}
};
mongoose.model('WishList', WishListSchema);
APIrouteDefintion.js
app.post('/api/order/:orderId/addToCart',auth.requiresLogin,controller.addProduct);
当我以这种方式调用 addProduct 函数时,我会在 wishList 下更新我的产品 ID,但不会更新名称和价格。请让我知道我错在哪里。
【问题讨论】: