I have multiple documents of below structure.

"GENUS_DATA": {
        "File_6489248.ZLM": {
            "MeterID_6489248": {}
                            }
              }

"GENUS_DATA": {
        "File_12345.ZLM": {
            "MeterID_12345": {}
                          }
              }

我要替换文件\u 6489248.ZLM和File\u 12345.名称为"File name"的ZLM作为键

推荐答案

一个选项是将$objectToArray与更新管道一起使用:

db.collection.update({},
[
  {$set: {GENUS_DATA: {$objectToArray: "$GENUS_DATA"}}},
  {$project: {GENUS_DATA: {"File-Name": {$first: "$GENUS_DATA.k"},
        "data": {$first: "$GENUS_DATA.v"}}}
  }
],
{multi: true})

查看它在playground example上的工作方式

EDIT:

db.collection.aggregate([
  {$project: {GENUS_DATA: {$objectToArray: "$GENUS_DATA"}}},
  {
    $project: {
      GENUS_DATA: {
        $map: {
          input: "$GENUS_DATA",
          as: "item",
          in: {"File-Name": "$$item.k", met: {$objectToArray: "$$item.v"}}
        }
      }
    }
  },
  {
    $project: {
      GENUS_DATA: {
        $map: {
          input: "$GENUS_DATA",
          as: "file",
          in: {"File-Name": "$$file.File-Name",
            met: {
              $map: {
                input: "$$file.met",
                as: "met",
                in: {"METNO": "$$met.k", data: "$$met.v"}
              }
            }
          }
        }
      }
    }
  }
])

查看它在playground example - generic multi keys上的工作方式

Mongodb相关问答推荐

无法在Ubuntu 22.04上安装MongoDB 7.0

在MondoDB中:将对象数组从切片索引数组切片,并通过聚合推入数组

在mongo聚合管道的组阶段排除字段,但在最后将其包含在内

根据参考图计算子文档列表的最大值

如何在 MongoDB 中的集合下查找同一文档

根据条件删除一些数组元素并将数组的大小更新为mongo中的另一个文件

程序可以运行,但我不断收到发送到客户端后无法设置标题,我应该忽略它吗?

如何在 mongodb golang 的单个更新调用中使用 $set 和 $inc?

有没有办法在 Prisma for MongoDB 的模式中显式声明 int32?

如何在 2 个应用程序之间共享mongoose模型?

更新文档中的数组时,如何在 MongoDB 和 C# 中使用 $push 更新修饰符

指定字段对于 MongoDB 是transient瞬态的,但对于 RestController 不是

Flask and Mongo

使用 mongoimport 将日期(ISODate)导入 MongoDB

初创公司应该考虑哪些数据库系统?

MongoDB 的 MMAPV1、WiredTiger 或 In-Memory StorageEngine 如何 Select ?

MongoDb:聚合 $lookup 过滤外部文档

Hadoop Map/Reduce 与内置 Map/Reduce

如何在 Windows 上停止 mongodb 服务器?

mongodb & max connections最大连接数