You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过命令行一次性导出MongoDB所有集合(JSON格式)

嘿,我来帮你搞定MongoDB所有集合导出成JSON的需求~ 下面给你两种实用的方法,分别适配不同的操作系统,还有一些注意事项要留意:

方法一:用Bash脚本(Linux/macOS/WSL)

这个方法适合类Unix环境,核心思路是先获取数据库里的所有集合名称,再循环用mongoexport逐个导出:

  1. 先创建一个脚本文件(比如export_all_collections.sh),把下面的代码粘进去:
#!/bin/bash
# 替换成你的数据库名称
DB_NAME="your_database_name"
# 替换成你的MongoDB连接地址(不需要认证的话可以简化成 mongodb://localhost:27017/)
MONGO_URI="mongodb://username:password@localhost:27017/"

# 创建导出目录(可选,把所有JSON文件放一起更整洁)
mkdir -p mongo_export

# 获取所有集合名称并保存到临时文件
mongosh $DB_NAME --quiet --eval "db.getCollectionNames().join('\n')" > collections.txt

# 循环遍历每个集合,导出为JSON
while read collection; do
  echo "正在导出集合:$collection"
  mongoexport --uri="$MONGO_URI$DB_NAME" --collection="$collection" --out="mongo_export/${collection}.json"
done < collections.txt

# 清理临时文件
rm collections.txt

echo "所有集合导出完成!文件都在 mongo_export 目录里~"
  1. 给脚本加执行权限:
    chmod +x export_all_collections.sh

  2. 运行脚本:
    ./export_all_collections.sh

方法二:用PowerShell脚本(Windows)

Windows用户可以用PowerShell来实现同样的逻辑:

  1. 创建一个脚本文件(比如Export-AllCollections.ps1),粘贴以下代码:
# 替换成你的数据库名称
$DB_NAME = "your_database_name"
# 替换成你的MongoDB连接地址
$MONGO_URI = "mongodb://username:password@localhost:27017/"

# 创建导出目录(可选)
New-Item -ItemType Directory -Name mongo_export -Force | Out-Null

# 获取所有集合名称并保存到临时文件
mongosh $DB_NAME --quiet --eval "db.getCollectionNames().join('\n')" | Out-File -FilePath collections.txt -Encoding utf8

# 循环导出每个集合
Get-Content collections.txt | ForEach-Object {
  $collection = $_
  Write-Host "正在导出集合:$collection"
  mongoexport --uri="$MONGO_URI$DB_NAME" --collection="$collection" --out="mongo_export/${collection}.json"
}

# 清理临时文件
Remove-Item collections.txt

Write-Host "所有集合导出完成!文件都在 mongo_export 目录里~"
  1. 打开PowerShell,切换到脚本所在目录,运行脚本:
    .\Export-AllCollections.ps1
可选:用mongodump + bsondump 转换

如果你先想做BSON格式的备份,再转换成JSON,可以这么操作:

  1. 先导出所有集合的BSON备份:
    mongodump --db your_database_name --out mongo_dump
  2. 把每个BSON文件转换成JSON:
# Bash环境下
for file in mongo_dump/your_database_name/*.bson; do
  collection=$(basename "$file" .bson)
  bsondump "$file" > "mongo_export/${collection}.json"
done

这种方法导出的JSON格式和mongoexport略有差异,适合需要备份+转换的场景。

关键注意事项
  • 确保你已经安装了MongoDB命令行工具(mongosh、mongoexport、mongodump这些),如果是MongoDB Atlas,也可以用这些工具连接导出。
  • 如果你的MongoDB开启了认证,一定要在连接URI里正确填写用户名和密码,或者用--username、--password参数单独指定。
  • 要是连接的是副本集或分片集群,记得把URI改成对应的集群地址(比如mongodb+srv://xxx.mongodb.net/)。
  • mongoexport默认导出的是JSON Lines格式(每行一个文档),如果需要导出成数组格式,可以加--jsonArray参数。

内容的提问来源于stack exchange,提问作者Sai Prasad G

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:54:36