14

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

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

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

然后区分两者!

4

2 回答 2

19

使用mongodumpbsondump

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

 mongodump --db db1

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

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

希望对您有所帮助!

于 2014-02-13T17:24:44.670 回答
9

您可以使用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
于 2012-10-06T03:16:08.337 回答