Wednesday 17 May 2017

Node js mongoDb client bulk insert data using promise

Hi I am beginner in node js mongodb. I want to insert data in mongodb. First I check user exist in users collection then data insert and after complete process then callback. Please give suggestion

   exports.contactSync = function contactSync(data, userId, callback) {

    var Promise = require('promise');
    MongoClient.connect(Mongo_url, function (err, db) {
    assert.equal(null, err);
    db.collection('contacts').deleteMany({user_id: userId});
       var bulk = db.collection('contacts').initializeOrderedBulkOp(),
            counter = 0;

    data.forEach(function (doc) {
        let promises = [];
        db.collection('users').findOne({email: doc.trim()}, {user_id: 1}).then(function (userData) { 
            promises.push(new Promise(resolve => {
                bulk.insert({user_id: userId, contact_id: userData.user_id});
            }));
        });

        counter++;

        if (data.length == counter) { 
             return Promise.all(promises);
            bulk.execute(function (err, r) {
                // do something with the result
                     console.log("succes");
            });
        }
    }); 

    if (counter > 0) {
        bulk.execute(function (err, result) {
            console.log("succes"); 
            callback({'error': 0, 'message': 'Successfull synchronization', 'data': null, 'status': 200});
            // do something with the result here
        });
    }
    }



via yogesh kumar

No comments:

Post a Comment