我有 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/