Mongodb - “递归”删除空字段?

2023-12-31

这是一个基于的问题MongoDb - 删除所有为空的字段 https://stackoverflow.com/questions/25287204/mongodb-remove-all-fields-that-are-null。引用的帖子仅提供了删除顶层空字段的解决方案。但是,如何删除嵌入的空字段呢?

请注意我不知道空字段的可能名称及其深度,所以我认为我们必须迭代每个文档的每个字段。

这是一个例子:

{
    "id": 14770467,
    "f1": "a",
    "f2": null,
    "f3": [
        {
            "id": 76946819,
            "f4": null
        }
    ]
}

我期待这样的事情:

{
    "id": 14770467,
    "f1": "a",
    "f3": [
        {
            "id": 76946819
        }
    ]
}

Thanks.


尝试这个

const remove = (data) => {
    for (let key in data) {
        const val = data[key];
        if (val == null) {
            delete data[key];
        } else if (Array.isArray(val)) {
            val.forEach((v) => {
                remove(v);
            });
        }
    }
    return data;
}


db.getCollection('Collection').find({}).forEach((data) => {
    data = remove(data);
    db.getCollection('OtherCollection').insert(data);
    //db.getCollection('Collection').save(data); // update same record
    print(data);
})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mongodb - “递归”删除空字段? 的相关文章

  • 如何获取 bson 文档的大小(以字节为单位)

    bson文档的size 函数返回的int值是字节数吗 无法找到此 API 的详细信息 如何获取 bson 文档的大小 以字节为单位 这是我的代码 import org bson Document MongoDatabase db Mongo
  • 聚合和展开数组,但保留顶级键

    假设我的收藏中有以下文档Classes收藏家 id ObjectId 5df58d45244a850d54b922c8 mentors numOfMentors NumberInt 1 mentorList ObjectId 5c9ba63
  • MacOS 每秒唤醒次数错误

    构建 Rails 应用程序 ruby 2 4 0p0 Rails 5 1 4 并使用我的 Macbook Air MacOS High Sierra 10 13 2 进行本地测试 我不断遇到此问题 过去 241 秒内有 45001 次唤醒
  • Mongoose嵌入式文档更新

    我在嵌入式文档更新方面遇到问题 我定义的架构 var Talk new Schema title type String required true content type String required true date type D
  • MongoDB $geoIntersects 不适用于包含负顶点的多边形

    我已在数据库中存储了跨越 x 轴和 y 轴的多边形 并且我想搜索包含给定点的多边形 为此 我使用 geoIntersects 运算符来指定一个点 但是 当多边形穿过轴时 MongoDB 不会返回任何多边形 我可以对查询或架构进行任何小的更改
  • 如何使用 pymongo 在 mongodb 中查询日期?

    我试图在 mongodb 中执行查询日期 但结果始终为空 我的查询如下 in the begin code def init self self now datetime now self db conexaoMongo self hora
  • 如何使用 Stripe 在一次操作中创建客户和卡片?

    我正在尝试第一次初始化客户 我有一个表格 他们可以在那里注册和填写所有内容 然后他们提交 在客户端上 会发生以下情况 var cardValues AutoForm getFormValues credit card form insert
  • MongoDB自增ID

    MongodB 中自动生成的 ID 的大小为12 Bytes大整数的大小是8 bytes 我在 4 台运行 Ubuntu Server 的机器上有一个 mongodb 集群 但我现在只是在测试 插入只能通过一台服务器 即 Nodejs 服务
  • 为 Meteor 数据创建编号列表

    有没有办法获取 Meteor 集合中项目的编号列表的 编号 我知道我可以在 html 中做到这一点 但我觉得如果我可以在 spacebars 中放置一些东西 那么样式会更容易 如果我可以使用更好的术语 请告诉我 像这样的东西 前 20 部电
  • Pymongo 批量插入

    我正在尝试批量插入文档 但批量插入时不会插入超过 84 个文档 给我这个错误 in insert pymongo errors InvalidOperation cannot do an empty bulk insert 是否可以批量插入
  • mongodb 聚合 - 累积字段的不同组值

    如果我有Player表格文件 name String score Int 我有Group文档 其中组代表玩家列表 groupName String players ObjectID 玩家可以属于多个组 我想做一个聚合Player文档 按以下
  • 将域类从 GORM 独立模块导入到 Grails 中

    我有两块拼图 1 一个名为的无 Grails 项目core module使用独立的 GORM dependencies compile org grails grails datastore gorm mongodb 6 0 4 RELEA
  • 是否可以提高 Mongoexport 速度?

    我有一个 1 3 亿行的 MongoDB 3 6 2 0 集合 它有几个简单的字段和 2 个带有嵌套 JSON 文档的字段 数据以压缩格式 zlib 存储 我需要尽快将其中一个嵌入字段导出为 JSON 格式 然而 mongoexport 需
  • 管理员未授权 Mongodb 执行 listDatabases 命令

    删除 mongodb 用户后 无法重新连接 mongo 没有 验证 我创造了超级用户 https docs mongodb org v2 6 reference built in roles superuser roles tomuser
  • findAndModify - MongoError:异常:必须指定删除或更新

    我想更新一个数组并返回文档 我的 findAndModify 语法正确吗 this becomeFollower function title username callback use strict posts findAndModify
  • 如何在java中使用$lookup阶段与spring data mongodb? [复制]

    这个问题在这里已经有答案了 到 Spring 的最新版本 我已经看到很多堆栈溢出问题 这表明 spring data mongodb 中不支持此操作新的 spring data mongodb 1 10 0 中是否支持此操作 db orde
  • 如何停止在 mongodb 集合中插入重复文档

    让我们有一个MongoDB包含三个文档的集合 db collection find id user A title Physics Bank Bank A id user A title Chemistry Bank Bank B id u
  • 使用 mongoimport 从 Windows 文件夹批量导入 MongoDB

    我的存档中有很多 json 文件 我需要将它们导入到 mongo 每一个操作中 我认为它可能是循环的 你对此有什么想法吗 如果您使用的是 Linux Unix shell 您可以尝试 for filename in do mongoimpo
  • MongoDB 按数组内部元素分组

    我有一个文章列表 每篇文章都有一个数组属性 其中列出了其中提到的各个个人 id oid 52b632a9e4f2ba13c82ccd23 providerName The Guardian url http feeds theguardia
  • 当字段是数字时怎么说...在 mongodb 中匹配?

    所以我的结果中有一个名为 城市 的字段 结果已损坏 有时它是一个实际名称 有时它是一个数字 以下代码显示所有记录 db zips aggregate project city substr city 0 1 sort city 1 我需要修

随机推荐