Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 使用Mongoose动态更新子文档中的数组_Node.js_Database_Mongodb_Mongoose_Nosql - Fatal编程技术网

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指向已找到的索引。

在使用模板字符串时,它是如何抱怨的?您得到的是哪个错误?语法错误,应为而不是``