如何更新嵌套对象?猫鼬

时间:2020-10-26 18:58:05

标签: javascript mongodb mongoose

我正在尝试更新auction.auctionDescription。发送请求后,auction.auctionDescription被更新,但auction.auctionImage被删除。

await Auction.updateOne({_id: id} ,{auction: {'auctionDescription': auctionDescription}})

我的文档如下所示:

_id: ObjectId("...")
user: "..."
animal: {...}
auction: {
  auctionImage: "path/to/image.jpeg"
  auctionDescription: "..."
}

1 个答案:

答案 0 :(得分:1)

当前编码的方式是将整个auction属性作为目标,并将其替换为值{"auctionDescription": auctionDescription},这就是为什么它会覆盖整个现有对象的原因。

如果您只是尝试更新文档上某个对象的属性,则可以使用"dot notation"将您要更新的对象上的特定属性作为目标,就像这样:

await Auction.updateOne({_id: id}, {"auction.auctionDescription": auctionDescription})