我正在使用 findOne 然后更新我得到的一个文档,但我想使用 find 以便我可以找到所有文档,然后将它们全部更新
Posted
技术标签:
【中文标题】我正在使用 findOne 然后更新我得到的一个文档,但我想使用 find 以便我可以找到所有文档,然后将它们全部更新【英文标题】:I'm using findOne then updating the one document I get but I wanna use a find so that I can find all the documents and then updating them all 【发布时间】:2022-01-07 12:43:22 【问题描述】:这里的问题是我只用给定的电子邮件更新第一个文档,但我想用这封电子邮件更新他找到的所有电子邮件,所以我想使用 find() 但我不知道该写什么更新找到的所有文档
router.route("/Updateinfo").post((req, res) =>
console.log("updateinfo");
console.log(email);
const z = req.body.Name;
const d = req.body.Password;
const s = req.body.Email;
const v = req.body.Type;
console.log(z);
if(v!="admin")
User.findOne(Email: email, function (err, user)
user.Name = z;
user.Password = d;
user.Email = s;
user.Type = v;
user.save(function (err)
if(err)
console.error('ERROR!');
);
);
【问题讨论】:
这能回答你的问题吗? How can I update multiple documents in mongoose? 【参考方案1】:如果您想用相同的数据更新与相同查询匹配的多个文档,则需要使用updateMany
。
见https://mongoosejs.com/docs/api.html#model_Model.updateMany
【讨论】:
你能告诉我如何使用 updatemany 执行我正在做的事情,因为我一直在尝试它,但它总是失败,提前谢谢你 User.updateMany( Email: email , $set: Name: z )以上是关于我正在使用 findOne 然后更新我得到的一个文档,但我想使用 find 以便我可以找到所有文档,然后将它们全部更新的主要内容,如果未能解决你的问题,请参考以下文章
TypeORM 在使用 .find()/.findOne() 时返回 undefined
[usedIf在数据库中时,sequelize findOne找不到用户标识
MongoDB原子“findOrCreate”:findOne,如果不存在则插入,但不更新