我有Coupon
和Product
的此架构。我想要的是,当使用API添加产品时,将创建某些unit
个独特优惠券并将其插入优惠券中,并且还应在产品中插入这些优惠券的参考。我正在使用coupon-code
包来生成优惠券。
let couponSchema = new Schema({
code: {type: String, unique: true},
status: {type:Boolean, default: false}
});
module.exports = mongoose.model('Coupon', couponSchema);
let productSchema = new Schema({
prductname: {type: String},
unit: {type: Number},
coupon: [{type: Schema.Types.ObjectId, ref: Coupon}],
category: {type: String}
});
module.exports = mongoose.model('Product', productSchema);
这是我添加产品的帖子API。我可以将代码保存到优惠券集合中,但对如何保存最近添加的产品优惠券参考文件感到困惑。
api.post('/add', (req, res, next) => {
let newProduct = new Product();
newProduct.productname = req.body.productname;
newProduct.unit = req.body.unit;
newProduct.category = req.body.category;
var i;
for(i=0; i<=req.body.unit; i++){
var code = ucg.generate(); // ucg is imported from coupon-code package
let newCoupon = new Coupon();
newCoupon.code = code;
newCoupon.save(err => {
if (err) {
console.log("error occured");
return;
}
});
}
newProduct.save(err => {
if (err) {
res.send(err);
return;
}
res.json({message: "Product added successfully."});
});
});
任何人都可以帮我找到办法吗?如果我的解释不够,请告诉我。
答案 0 :(得分:0)
我通过添加push
方法newProduct.coupon.push(newCoupon.id);
for(i=0; i<=req.body.unit; i++){
var code = ucg.generate(); // ucg is imported from coupon-code package
let newCoupon = new Coupon();
newCoupon.code = code;
newCoupon.save(err => {
if (err) {
console.log("error occured");
return;
}
});
newProduct.coupon.push(newCoupon.id);
}