如何导出MongoDB中的所有集合

时间:2018-01-02 09:00:37

标签: mongodb

有人可以告诉我如何通过命令行

一次导出所有集合(进入JSON格式)

2 个答案:

答案 0 :(得分:0)

通常你想使用mongoexport或mongodump,但每个只能在一个集合上使用。

要获取所有集合并将它们全部导出,您需要运行某些类型的脚本,这些脚本可以定位然后遍历所有内容。 在linux上它将是这样的:

#!/bin/bash

DB=$1
Collections=$(mongo localhost:27017/$DB --quiet --eval "db.getCollectionNames()" | sed 's/,/ /g')

for collection in $Collections; do
   mongoexport -d <DATABASE_NAME> -c $collection -o $collection.json
done

您需要将其转换为脚本文件然后运行它。 我没有测试过上面的内容,但希望它没有错误。

答案 1 :(得分:0)

Steve的脚本生成结尾处带有引号的文件。为了避免这种情况,改进了模式。

改进上述脚本

#!/bin/bash

DB=$1
Collections=$(mongo localhost:27017/$DB --quiet --eval "db.getCollectionNames()" | sed 's/[^"[:alnum:]]/ /g')

for collection in $Collections; do
   mongoexport -d $DB -c $collection -o ./$collection.json
done