在 MongoDB 中,如何使用 $set 来更新嵌套值/嵌入文档?

发布于 2024-09-25 16:07:15 字数 334 浏览 6 评论 0原文

在 MongoDB 中,如何使用 $set 更新嵌套值?

例如,考虑具有以下文档的集合 people

{
  _id: ObjectId("5a7e395e20a31e44e0e7e284"),
  name: "foo",
  address: { street: "123", town: "bar" }
}

如何更新嵌入在 address 文档中的 street 字段123” 到“大街”

In MongoDB how do you use $set to update a nested value?

For example, consider a collection people with the following document:

{
  _id: ObjectId("5a7e395e20a31e44e0e7e284"),
  name: "foo",
  address: { street: "123", town: "bar" }
}

How do I update the street field embedded in the address document from "123" to "Main Street"?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

蓝梦月影 2024-10-02 16:07:15

使用点符号

db.people.update({ }, { $set: { "address.street": "Main Street" } })

Using the dot notation:

db.people.update({ }, { $set: { "address.street": "Main Street" } })
静赏你的温柔 2024-10-02 16:07:15

除了尼尔斯的回答之外,还要验证嵌套值的“类型”。就我而言,它是由 json 形成的“字符串”。尽管这可能不太可能,但请确保该值具有正确的类型。

In addition to Niels' answer, also do verify the "type" of the nested value. In my case, it was a "string" formed from json. Though this might be unlikely, but do ensure that the value has the right type.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文