node.js - 将产品插入子模式需要很长时间?

标签 node.js mongodb mongoose mongodb-query

我有 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'});
         }
       });
   }
});

这里商品插入成功,问题是数据量大的时候耗时较长。我在这里使用异步,我认为这是错误的。任何人都可以建议一种更好的方法

最佳答案

我建议您只拥有商店中产品的引用 ID。它将节省您进行查询的时间(现在您只需插入一个 ID,而不用在数据库中查找另一个文档)。

关于node.js - 将产品插入子模式需要很长时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42394874/

相关文章:

javascript - 使用node.js async 和 require 获取多个url

node.js - 如何在 NodeJS 中创建空的(立即完成的)ReadWriteStream?

javascript - MongoDB 根据 json 输入更新嵌套对象

mongodb - 连接到 MongoDB Atlas Cluster 错误

node.js - Mongoose findOne 当数据不存在时卡住

node.js - 下面的 function (err, results) { 是什么?

node.js - 如何在一次调用中使用 Sequelize 更新关联模型

c# - MongoDB 获取服务器

node.js - 如何检索MongoDB中的大量对象?

mongodb - Golang MongoDB 不返回条件查询