我正在使用MEAN Stack创建一个网站
我做了一个模式。
下面的是架构。
string s(1, line[i]);
if (s == string(".")) { ... }
else if (s == string(argc[4])) { ... }
产品是数组。
当我创建此架构时,猫鼬使其成为这样。
const StoreSchema = mongoose.Schema({
storename: {
type: String
},
storenumber: {
type: Number
},
product: [{
pname: String,
pcode: Number,
price: String,
detail: String
}]
});
现在有问题。
我想在产品数组中为pname,pcode,价格,明细插入值。
但是我不能将值推送到数组。
下面的是插入值代码。
_id:5c3afaa96649e84364aab24b
storenumber:1
product:Array
__v:0
但是它不起作用。
即使我写了产品。
newProd中的值都是正确的
我想要的是这样
module.exports.addProd = function(newProd, callback) {
Store.updateOne({
storenumber: number
}, {
$push: {
pname: newProd.pname
},
$push: {
pcode: newProd.pcode
},
$push: {
price: newProd.price
},
$push: {
detail: newProd.detail
}
}, callback);
}
如何在猫鼬中向数组插入值?
请帮助我
答案 0 :(得分:0)
您必须将整个对象推到一起,而不是像这样将每个字段推到一起-
Store.updateOne({
storenumber: number
}, { $push: { "product": newProduct } }, callback);
并且也应该使用异步等待-而不是使用回调-
module.exports.addProd = async newProd => {
let res = await Store.updateOne({
storenumber: number
}, { $push: { "product": newProduct } });
return res;
}