gpt4 book ai didi

node.js - 在for循环中更新MongoDB数据库中的每个元素

转载 作者:太空宇宙 更新时间:2023-11-04 03:10:07 24 4
gpt4 key购买 nike

我有一个 userID 数组(MongoDB Objectids),我想遍历每个用户 ID,在我的 MongoDB 用户数据库中找到其用户条目,然后更新它,比如修改用户的年龄。然后,只有当每个用户都已更新时,我才想在我的 Node.js Express 应用程序中说 res.send(200);

我从以下代码开始,由于对 findById 的异步调用,该代码完全错误:

for (var i = 0; i < userIDs.length; i++) {
var userID = userIDs[i];

User.findById(userID, function (err, user) {
if (err) throw err;

// Update user object here

user.save(function (err, user) {
if (err) throw err;
res.send(200);
});
});
}

我有什么想法可以做到这一点吗?是否有 findById 的同步版本?或者也许是一种通过数组映射并将函数应用于每个元素的方法?

谢谢!

最佳答案

我认为您需要 npm 的 async 模块的 forEach 方法。它看起来像这样:

async.forEach(userIDs, function(id, callback) {
User.findById(id, function(err, user){
if(err) throw err;
user.save(function(err, user){
if(err) throw err;
callback();
}
}, function(err){
if(err){
throw err;
} else {
res.send(200);
}
}
}

关于node.js - 在for循环中更新MongoDB数据库中的每个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24190570/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com