📜  猫鼬按 id 更新子文档 - Javascript (1)

📅  最后修改于: 2023-12-03 15:11:11.784000             🧑  作者: Mango

更新子文档 - Javascript (Mongoose)

如果您在使用Mongoose操作MongoDB,则可以通过操作猫鼬(Mongoose)来更新子文档。

更新子文档的方法

使用以下方法来更新子文档:

// 根据 id 更新子文档
ParentModel.findOneAndUpdate(
    { _id: parentId, '子文档的id': subDocId },
    { $set: { '子文档的字段': '修改后的值' } },
    { new: true },
    function(err, doc) {
        if (err) {
            console.log("更新子文档时出错: ", err);
        } else {
            console.log("更新子文档后的结果: ", doc);
        }
    }
);

这是使用 findOneAndUpdate() 函数的标准方法。其中:

  • parentId 是父文档的 ID。
  • subDocId 是子文档的 ID。
  • '子文档的字段' 是要更新的子文档中的字段名。
  • '修改后的值' 是要为该字段设置的新值。

在这个例子中,我们使用了一个回调函数,可以更好地处理异步代码。

特别注意

请注意,如果要更新整个子文档,而不只是子文档中的一部分,请使用以下代码:

ParentModel.findOneAndUpdate(
    { _id: parentId, '子文档的id': subDocId },
    { $set: { '子文档的字段名' : newCompleteSubDoc } },
    { new: true },
    function(err, doc) {
        if (err) {
            console.log("更新子文档时出错: ", err);
        } else {
            console.log("更新子文档后的结果: ", doc);
        }
    }
);

在这里,newCompleteSubDoc 是您要替换子文档的新文档。