我需要将新对象推送到我的产品数组中。我发现,如果数组为空,则findOneAndUpdate()方法首次起作用。当我执行save()方法时,它只创建包含产品的单独行。我已经尽我所能尝试了一切,但没有成功。
我的模式;
const ProdcutSchema = new mongoose.Schema({
name:{
type: String,
required: true
},
productDescription:{
type: String,
required: true
},
pricePerUnit:{
type: Number,
required: true
},
productAmmount:{
type:Number,
required: true
},
/*productImagePath:{
type:String,
required: true
}*/
});
const UserSchema = new mongoose.Schema({
name:{
type: String,
required: true
},
email:{
type: String,
required: true
},
password:{
type: String,
required: true
},
date:{
type: Date,
default: Date.now
},
products:[ProdcutSchema]
});
const User = mongoose.model('User', UserSchema);
module.exports = User;
猫鼬在POST方法上运行:
const newProduct = new User({
email: useremail,
products:[{
name :product_name,
productDescription : product_Description,
pricePerUnit : price_PerUnit,
productAmmount : product_Ammount
}]
});
newProduct.save((err)=>{
if(err) console.log(err);
res.redirect('/dashboard');
});
答案 0 :(得分:0)
就您而言,我认为您应该使用$push运算符。
示例:
await User.findOneAndUpdate(your_condition, {$push: {products: your_new_product}});