搜索

查看: 3193|回复: 11

[Python] mongo全量导出并保存成json格式数据

[复制链接]
发表于 2022-6-25 22:58:19 | 显示全部楼层 |阅读模式
小老虎 2022-6-25 22:58:19 3193 11 看全部
  1. import json
  2. import os

  3. import pymongo

  4. # 连接数据库
  5. client = pymongo.MongoClient('localhost', 27017)
  6. # 数据库保存文件夹
  7. db_path = './data_back'
  8. # 获取所有mongoDB的数据库名称
  9. db_list = client.list_database_names()
  10. # 去除数据库名称列表中的system数据库
  11. admin_list = ['admin', 'local', 'config']
  12. db_list = [db for db in db_list if db not in admin_list]  # 去除数据库名称中无关的数据库
  13. # 循环遍历数据库名称保存数据到json中
  14. for db_name in db_list:
  15.     # 连接数据库
  16.     db = client[db_name]
  17.     # 获取数据库中所有的集合名称
  18.     collection_list = db.list_collection_names()
  19.     # 去除集合名称列表中的system数据库
  20.     collection_list = [collection for collection in collection_list if collection not in admin_list]
  21.     # 循环遍历集合名称保存数据到json中
  22.     for collection_name in collection_list:
  23.         # 连接集合
  24.         collection = db[collection_name]
  25.         # 获取集合中所有的文档
  26.         # with 上下文进行管理,设置no_cursor_timeout=True参数,让游标不会超时,防止程序阻塞
  27.         with collection.find({}, {"_id": 0}, no_cursor_timeout=True) as cursor:
  28.             # 循环遍历文档保存数据到json中
  29.             for row in cursor:
  30.                 # 创建文件夹
  31.                 if not os.path.exists(db_path):
  32.                     os.makedirs(db_path)
  33.                 # 创建文件
  34.                 with open(os.path.join(db_path, db_name + '_' + collection_name + '.json'), 'a') as f:
  35.                     # 将文档写入文件
  36.                     f.write(json.dumps(row, ensure_ascii=False) + '\n')
复制代码


回复

使用道具 举报

发表于 2023-6-28 21:09:11 | 显示全部楼层
冀苍鸾 2023-6-28 21:09:11 看全部
楼主,大恩不言谢了!知鸟论坛是最棒的!
回复

使用道具 举报

发表于 2023-6-29 14:55:14 | 显示全部楼层
井底燕雀傥 2023-6-29 14:55:14 看全部
楼主,我太崇拜你了!我想我是一天也不能离开知鸟论坛
回复

使用道具 举报

发表于 2023-6-29 22:12:58 | 显示全部楼层
Gordon520 2023-6-29 22:12:58 看全部
论坛不能没有像楼主这样的人才啊!我会一直支持知鸟论坛
回复

使用道具 举报

发表于 2023-6-30 09:03:04 | 显示全部楼层
xinting_6ym 2023-6-30 09:03:04 看全部
我看不错噢 谢谢楼主!知鸟论坛越来越好!
回复

使用道具 举报

发表于 2023-6-30 12:26:21 | 显示全部楼层
123456848 2023-6-30 12:26:21 看全部
论坛不能没有像楼主这样的人才啊!我会一直支持知鸟论坛
回复

使用道具 举报

发表于 2023-6-30 22:05:01 | 显示全部楼层
执着等待等wc 2023-6-30 22:05:01 看全部
楼主,大恩不言谢了!知鸟论坛是最棒的!
回复

使用道具 举报

发表于 2023-7-1 00:47:56 | 显示全部楼层
123456809 2023-7-1 00:47:56 看全部
这个帖子不回对不起自己!我想我是一天也不能离开知鸟论坛
回复

使用道具 举报

发表于 2023-7-3 21:19:31 | 显示全部楼层
贰十岁装成熟装s 2023-7-3 21:19:31 看全部
楼主太厉害了!楼主,I*老*虎*U!我觉得知鸟论坛真是个好地方!
回复

使用道具 举报

发表于 2023-7-3 21:52:54 | 显示全部楼层
戏做顿 2023-7-3 21:52:54 看全部
论坛不能没有像楼主这样的人才啊!我会一直支持知鸟论坛
回复

使用道具 举报

  • 您可能感兴趣
点击右侧快捷回复 【请勿灌水】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 返回列表

RSS订阅| SiteMap| 小黑屋| 知鸟论坛
联系邮箱E-mail:zniao@foxmail.com
快速回复 返回顶部 返回列表