【发布时间】:2017-10-17 18:47:37
【问题描述】:
您好,我是 node js mongodb 的初学者。我想在 mongodb 中插入数据。首先我检查用户集合中是否存在用户,然后插入数据,完成过程后回调。请给建议
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
});
}
}
【问题讨论】:
标签: javascript node.js mongodb promise