0

I have the below code to insert data to mongo db,

 var obj=[];
    ThirdNavigation.find(searchApp).exec(function(err, app) {
                if (err) return done(err);

                app.forEach(function(navi){
                    if(typeof navi.variants == "undefined"){
                        ApplicationInventory.findOrCreate({id :navi.id},navi).exec(function(e,update){
                            if(e) console.log(e);
                            var query = {
                                productId: navi.id,
                                appId: navi.appId,
                                childId: navi.childId,
                                name: navi.name,
                                price: navi.price,
                                quantity: navi.quantity
                            }
                            PriceAndVariants.findOrCreate({productId : navi.id},query).exec(function(err,variants){
                                if(err) console.log(err);
                                if(variants != ""){
                                    update.variant = variants[0];
                                    obj.push(update);
                                }
                                else{
                                    obj.push(update);
                                }
                            })
                        })
                    }
                    else{
                    var jData = JSON.parse(navi.variants);
                        for(var i=0; i< jData.length; i++){

                            navi.price = jData[i].price;
                            navi.quantity = jData[i].quantity;
                            navi.sku = jData[i].sku;
                            navi.discount = jData[i].discount;

                            ApplicationInventory.findOrCreate({id :navi.id},navi).exec(function(e,update){
                                if(e) console.log(e);
                                var query = {
                                    productId: navi.id,
                                    appId: navi.appId,
                                    childId: navi.childId,
                                    name: navi.name,
                                    price: navi.price,
                                    quantity: navi.quantity
                                }
                                PriceAndVariants.findOrCreate({productId : navi.id},query).exec(function(err,variants){
                                    if(err) console.log(err);
//                                    console.log(update);
                                    if(variants != ""){
                                        update.variant = variants[0];
                                        obj.push(update);
                                    }
                                    else{
                                        obj.push(update);
                                    }
                                    console.log(obj);
                                })
                            })
                        }
                    }
                })
                console.log(obj);
                                    res.send(obj);
 });

But the obj is becoming null and I receive a null array from the frontend. But when I print the obj inside the forEach the data is printing perfectly.I can't find the error.

shamila
  • 1,080
  • 5
  • 13
  • 40

0 Answers0