mongoose MongoDB -如何从数组中只替换一个对象

du7egjpx  于 2023-03-12  发布在  Go
关注(0)|答案(1)|浏览(157)

我在MongoDB中有以下BSON数据:

[
  {
     partyName : "p1",
     poNumber : "789",
  },
  {
     partyName : "p2",
     poNumber : "700",
  },
  {
     partyName : "p3",
     poNumber : "889",
  }
]

我想用一个新对象替换partyName为“p2”的对象。

const user1 = await User.findOneAndUpdate({"array.partyName" :"p2"},{$set:{array:newObject}})

它替换了对象“p2”,但删除了其他对象(p1和p3)。我想保留p1和p3,但只更新p2对象。
请帮助我克服这个问题。

bvpmtnay

bvpmtnay1#

使用$ positional operator

await User.findOneAndUpdate(
  { "array.partyName" :"p2" },
  { $set: { "array.$": newObject } }
)

Demo @ Mongo Playground

相关问题