如何修改嵌套文档Mongo的每个字段?

发布于 2025-01-18 03:47:54 字数 381 浏览 0 评论 0原文

所以想象我有以下文档:

{
  "_id":...,
  "data":{"a":[],"b":[],"x":[]}
}

我事先不知道子文档 data 可能有哪些字段。我只知道该子文档中的每个字段都将是一个数组

如何进行更新以使对象结果如下:

{
  "_id":...,
  "data":{"a":[1],"b":[1],"x":[1]}
}

约束:仅使用 mongodb 运算符。一次更新。不知道“数据”子文档中的字段

so imagine I have the following document:

{
  "_id":...,
  "data":{"a":[],"b":[],"x":[]}
}

I don't know beforehand which fields the subdocument data may have. I just know that every field in that subdocument will be an array

How do I make an update so that the object results like:

{
  "_id":...,
  "data":{"a":[1],"b":[1],"x":[1]}
}

Constraint: Using only mongodb operators. One single update. Without knowing the fields inside the 'data' subdocument

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

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

发布评论

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

评论(1

一瞬间的火花 2025-01-25 03:47:54
db.collection.update({},
[
  {
    $set: {
      data: {
        $arrayToObject: {
          $map: {
            input: { $objectToArray: "$data" },
            as: "d",
            in: { k: "$d.k", v: [ 1 ] }
          }
        }
      }
    }
  }
])

mongoplayground

db.collection.update({},
[
  {
    $set: {
      data: {
        $arrayToObject: {
          $map: {
            input: { $objectToArray: "$data" },
            as: "d",
            in: { k: "$d.k", v: [ 1 ] }
          }
        }
      }
    }
  }
])

mongoplayground

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