Node.js 使用Mongoose动态更新子文档中的数组
我需要更新子文档中的数组字段,这样就可以了Node.js 使用Mongoose动态更新子文档中的数组,node.js,database,mongodb,mongoose,nosql,Node.js,Database,Mongodb,Mongoose,Nosql,我需要更新子文档中的数组字段,这样就可以了 User.findOne({ _id: id }, (err, user) => { if (!user) res.json({ error: "Email has not be found" }); user.set({ "files.0.approved": isApproved }); user.save((err, updatedUser) => { return res.send(updated
User.findOne({ _id: id }, (err, user) => {
if (!user) res.json({ error: "Email has not be found" });
user.set({ "files.0.approved": isApproved });
user.save((err, updatedUser) => {
return res.send(updatedUser);
});
});
然而,我想知道如何才能使它充满活力?因为我在这里手动传递索引-files.0.approved
我尝试使用模板字符串,但它有问题
我也试着转介,但无法理解
如果我们假设我可以用req.body.index获取数组的索引,那么如何防止它被硬编码 我是这样做的
User.findOneAndUpdate(
{ _id: id, "files._id": file_id },
{ $set: { "files.$.approved": isApproved } },
(err, updatedUser) => {
if (err) res.json({ error: "Something went wrong" });
res.json({ message: "success" });
}
);
显然,您首先找到了需要更新的文件,然后mongoose有$operator指向已找到的索引。在使用模板字符串时,它是如何抱怨的?您得到的是哪个错误?语法错误,应为而不是``