【发布时间】:2016-08-01 07:47:51
【问题描述】:
我正在使用 mongoose 做一个 javascript 函数来查找一个包含用户电子邮件列表的组,这部分工作得很好。在我想找到列表的每个用户并添加新组名而不是旧组名后,我不知道为什么,但它不起作用,函数在执行 for 循环之前返回我组,并且用户没有被修改。
这是我的用户模型:
var userSchema = mongoose.Schema({
local : {
email : String,
password : String,
}
groups : { type: [String], default: []}
});
这里是我的组模型:
var groupSchema = mongoose.Schema({
title : String,
creator : String,
listOfUsers : { type: [String], default: []}
});
这里是我的功能:
Group.findOne({ '_id': groupId}, function (error, group){
var oldTitle = group.title;
group.title = req.body.title;
group.save();
if(error){
throw (error)
}
for(var i = 0; i < group.listOfUsers.length;i++){
User.findOne({'local.email': group.listOfUsers[i]}, function(error,user){
if(error){
throw (error)
}
for(var j=0;j<user.groups.length;j++){
if(user.groups[j] == oldTitle){
user.groups[j] = group.title;
user.save();
}
}
});
}
return res.json(group);
【问题讨论】:
-
group.save是异步操作,在那里使用回调或承诺。 -
好的,我正在找一些例子
标签: javascript node.js mongoose