最初创建站点时,我不知道MongoDB会进行区分大小写的搜索等等,而且我正在尝试解决问题。
我已经更新了代码以在保存之前更改用户输入,以便将其小写并修剪多余的空格。
我可以很容易地从mongo shell中更新用户集合,然后很高兴去那里,但是我还有另一个需要更新的集合,它看起来像这样:
注册数据对象:
{
event: string,
field: string,
users: [string],
players: [
first: string,
last: string,
email: string
]
}
如果可以通过修整并从mongo shell使其小写的方式来更新所有注册的players.email字段,我很乐意这样做。但是我不认为这是事实,而且在猫鼬(使用Node.js后端,AngularJS前端)中遇到了麻烦。
我在想类似的东西,但出现类型错误:Registration.save不是一个函数:
module.exports.regUpdateAll = function(req, res) {
console.log('UPDATE ALL REGISTRATIONS');
Registration.find().exec((err, reg) => {
reg.forEach((reg) => {
for(var i = 0; i < reg.players.length; i++) {
reg.players[i].email = reg.players[i].email.toLowerCase().trim();
}
});
console.log(reg);
Registration.save(reg).then((err, response) => {
if(!err) {
res.status(200).send(response);
} else {
console.log(err);
res.status(500).send(err);
}
});
});
};
我该如何解决这个问题?
您需要从注册模型的对象调用.save()。例如
Registration.find().exec((err, regtrations) => {
regtrations.forEach((reg) => {
reg.players =
reg.players.map( p=> {
p.email = p.email.toLowerCase().trim();
return p;
})
console.log(reg);
reg.markModified("players");
reg.save( (error)=> {
//do something
})
})
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句