如何将整个MongoDB数据库转储为text / json?

时间:2012-10-05 23:33:47

标签: mongodb

如何将整个MongoDB数据库转储为文本(纯文本,json或CSV)?

我正在使用一个我不太熟悉的应用程序。我想

  • 清除数据库
  • 加载种子数据
  • 将整个数据库转储为文本
  • 做一些事情
  • 再次转储

然后将两者分开!

2 个答案:

答案 0 :(得分:15)

使用mongodumpbsondump

第1步 将整个数据库转储到BSON文件:

 mongodump --db db1

第2步 将每个BSON文件转换为JSON文件:

for f in dump/db1/*.bson; do bsondump "$f" > "$f.json"; done

希望它有所帮助!

答案 1 :(得分:8)

您可以使用mongoexport实用程序。它会默认转储出json,但你可以指定转储csv格式。

mongoexport --help将为您提供所需的所有选项。

您提到要从数据库转储所有集合,mongoexport期望您指定数据库和集合名称,因为它希望转储一个集合。

您可以编写一个简短的shell脚本(如果您在Windows上,转换为批处理脚本),效果如下:

#!/bin/sh
# assuming mongo bin is in your path

host=YOURMONGOHOST
port=YOURMONGOPORT
db=DBYOUWANTTOEXPORT

for c in `mongo --quiet $host:$port/$db --eval 'db.getCollectionNames()' | sed 's/,/ /g'`
do
    mongoexport --host $host --port $port -d $db -c $c > $c.json
done