如何将整个 MongoDB 数据库转储为文本(纯文本、json 或 CSV)?
我正在使用一个我不太熟悉的应用程序。我想
- 清空数据库
- 加载种子数据
- 将整个数据库转储为文本
- 做一些事情
- 再次转储
然后区分两者!
如何将整个 MongoDB 数据库转储为文本(纯文本、json 或 CSV)?
我正在使用一个我不太熟悉的应用程序。我想
然后区分两者!
使用mongodump
和bsondump
:
步骤 1 将整个数据库转储到 BSON 文件:
mongodump --db db1
步骤 2 将每个 BSON 文件转换为 JSON 文件:
for f in dump/db1/*.bson; do bsondump "$f" > "$f.json"; done
希望对您有所帮助!
您可以使用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