2017-02-22 48 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,我只是將它從代碼發佈到這裏的問題。 –