导入导出和备份恢复

MongoDB 常见工具:

  • mongoexport
  • mongoimport
  • mongodump
  • mongorestore

它们通常来自 MongoDB Database Tools。

一、导出 JSON

users 集合导出为 JSON:

mongoexport --uri="mongodb://127.0.0.1:27017/mongodb_tutorial" --collection=users --out=users.json

导出的 JSON 适合数据交换和查看。

二、导入 JSON

mongoimport --uri="mongodb://127.0.0.1:27017/mongodb_tutorial" --collection=users --file=users.json

如果是数组格式 JSON,需要加:

--jsonArray

例如:

mongoimport --uri="mongodb://127.0.0.1:27017/mongodb_tutorial" --collection=users --file=users.json --jsonArray

三、备份数据库

mongodump 用于备份 BSON 数据。

mongodump --uri="mongodb://127.0.0.1:27017/mongodb_tutorial" --out=backup

会生成类似目录:

backup/
└── mongodb_tutorial/
    ├── users.bson
    ├── users.metadata.json
    ├── posts.bson
    └── posts.metadata.json

四、恢复数据库

mongorestore --uri="mongodb://127.0.0.1:27017" backup

如果要先删除目标集合再恢复,可以使用:

mongorestore --drop --uri="mongodb://127.0.0.1:27017" backup

--drop 很危险,会删除目标已有数据,执行前必须确认环境。

五、导出和备份的区别

工具适合场景
mongoexport导出 JSON 或 CSV,方便交换数据
mongoimport导入 JSON 或 CSV
mongodump备份数据库原始 BSON 数据
mongorestore从备份恢复

备份恢复优先使用 mongodumpmongorestore

数据交换或临时分析可以用 mongoexport

六、生产环境建议

  • 定期备份。
  • 定期演练恢复。
  • 备份文件要加密或放在安全位置。
  • 不要只备份,不验证恢复。
  • 重要数据建议使用云厂商或 MongoDB Atlas 的备份能力。

备份的价值不在于“有文件”,而在于出问题时真的能恢复。