如何处理与MongoDB和node.js的asynchronous?
在这个代码片段中更新MongoDB数据库之前 , 确保for循环完成其处理的最好方法是:
var userIdArray = [] // contains 100000 userIds User.find({'_id': {$in: userIdArray}}, 'name', function(err, result){ var thisTime = new Date().getTime(); var usersArray = []; for (var i = 0; i < result.length; i++) { var user = result[i]; var userObject = { userId: user['_id'], userName: user.name, time: thisTime } usersArray.push(userObject); }; Model.update(id, {$pullAll: {userIds: userIdArray}, $push: {users: {$each: usersArray}}}, function(err, result) { //continue to do stuff } ); });
您的for循环具有所有顺序和同步操作。 它会在你的mongo更新被触发之前总是完成。
- Node.js:res.redirect(“back”)得到错误('不能在发送之后设置头部')。
- node.js中的asynchronous任务
- Node.JS加载模块asynchronous
- Node.JS:如何将variables传递给asynchronouscallback?
- “杂耍asynchronous” – 为什么我的解决scheme不会返回任何东西?
- 在redis中使用nodejsasynchronous请求进行循环
- 如何在Node.js中创build一个API请求响应stream?
- Async.js系列和node-mysql查询不能得到行
- node.js中的asynchronous编程是否加速了CPU绑定的任务?