猫鼬findByIdAndUpdate嵌套不更新对象

时间:2020-05-20 08:46:41

标签: mongodb mongoose

我想知道为什么:

const props = {
    excluded: true
}
const image = await Image.findByIdAndUpdate(
    imageId, {
        $set: 'image.ingest': props
    }, {
        new: true
    }
)

不使用excluded字段更新图像文档,而:

const props = {
    excluded: true
}
const image = await Image.findById(imageId);

image.ingest = {
    ...image.ingest,
    ...props
};

await image.save();

是吗?

1 个答案:

答案 0 :(得分:1)

您的问题是您忘记在{ }之后使用$set。选中this example

此外,使用mongoose检查此查询并可以正常工作:

var updated = await model.findByIdAndUpdate(id,
{
  "$set":{
    "image.ingest":"new value"
  }
},{
  "new":true
})