嗨,我是初學者在節點js mongodb。我想在mongodb中插入數據。首先我檢查用戶是否存在於用戶集合中,然後是數據插入,並在完成過程後再回調。請給建議節點js 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
});
}
}
是的,它是不會執行。如何執行 –