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

Ada*_*sen 11 mongodb

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

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

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

然后差异两个!

Mos*_*tov 16

使用mongodumpbsondump:

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

 mongodump --db db1
Run Code Online (Sandbox Code Playgroud)

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

for f in dump/db1/*.bson; do bsondump "$f" > "$f.json"; done
Run Code Online (Sandbox Code Playgroud)

希望它有所帮助!


Asy*_*sky 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
Run Code Online (Sandbox Code Playgroud)