首页 > 解决方案 > 嵌套在嵌套文档中的数组中的对象中的猫鼬更新值

问题描述

我有一个像这样的 mongo 文档:

{
  _id: "...",
  nested_document: {
    _id: "...",
    myObject: {
      fields: [
        { value: "VALUE_TO_CHANGE" },
        { value: "KEEP_THIS_ONE" }
      ]
    }
  }
}

我正在尝试VALUE_TO_CHANGE用猫鼬更新(通过它的索引):

await Model.findByIdAndUpdate(
    req.params.id,
    {
      $set: {
        "nested_document.myObject.fields.$[0].value": value
      }
    },
    {},
    () => {}
  );

但没有任何更新。为什么?

谢谢

标签: mongodbmongoosemongodb-query

解决方案


好的,由于架构不严格,我需要在更新查询的配置中使用此参数,查询如下所示:

await Model.findByIdAndUpdate(
    req.params.id,
    {
      $set: {
        "nested_document.myObject.fields.0.value": value
      }
    },
    { strict: false },
    () => {}
  );

推荐阅读