2017-02-22 77 views
1

我有猫鼬架构:将产品插入子模板需要很长时间?

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

我建议你只有商店的产品的参考ID。这将节省您在查询时的时间(现在您只需插入一个id,而不必在数据库中查找其他文档)。

+0

有mongo id,我只是将它从代码发布到这里的问题。 –