如何将整个MongoDB数据库转储为文本(纯文本,json或CSV)?
我正在使用一个我不太熟悉的应用程序。我想
然后将两者分开!
答案 0 :(得分:15)
使用mongodump
和bsondump
:
第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