我有mongoose架构:
var productSchema = new Schema({
"productId" : {type : String},
"productName" : {type : String},
"mrp" : {type : String}
});
var shopSchema = new Schema({
"ShopId" : {type : Number},
"Name" : {type : String},
"contact" : {type : Number},
"products" : [productSchema]
},{collection:"shopProductDetails"});
module.exports.Shops = mongoose.model('Shops',shopSchema);
module.exports.Products = mongoose.model('Products',productSchema);
我已成功将数据插入商店。接下来我必须插入数据到 productSchema
的子模式中插入数据
{
"ShopId":"439",
"products": [{
"productId": "1234",
"productName": "non veg",
"mrp": "38",
}, {
"productId": "5678",
"productName": "veg",
"mrp": "38 "
},{...}]
}
产品广告代码:
model.Shops.findOne({"ShopId":439},function(err, doc){
if(doc == null){
res.json({'success':'0','result':{},'errorMessage':'Credentials not matched'});
}
else{
async.each(products,function(item){
var insertProducts={productId: item.productId, productName: item.productName, mrp: item.mrp};
doc.products.push(insertProducts)
});
doc.save(function (err, data) {
if (err) {
res.json({'errorMessage':err});
}
else {
res.json({'success':'1','result':{'message':'Products Inserted Successfully'},'errorMessage':'No'});
}
});
}
});
此处产品已成功插入,问题是当存在批量数据时需要花费大量时间。我在这里使用异步,我认为它是错误的。任何人都可以提出更好的方法
答案 0 :(得分:0)
我建议您只在商店中获得该产品的参考ID。它将节省您进行查询的时间(现在您只需插入一个id而不是在数据库中查找另一个文档)。