我想通过命令导出MongoDB中的所有集合:

mongoexport -d dbname -o Mongo.json

结果是: 没有指定集合!

手册说,如果你不指定一个集合,所有的集合都将被导出。 然而,为什么这行不通呢?

http://docs.mongodb.org/manual/reference/mongoexport/#cmdoption-mongoexport--collection

我的MongoDB版本是2.0.6。


当前回答

这是我用来实现该结果的bash脚本。该脚本被概括为4个输入(主机url、数据库、用户名和密码),因此可以在任何mongo数据库上使用。

dburl=$1
username=$3
password=$4
db=$2

mongoAccess=mongodb+srv://$username:$password@$dburl/$db

Collections=$(mongo $mongoAccess --quiet --eval "db.getCollectionNames()" | sed 's/,/ /g' | tail +6)

#echo $Collections

for col in $Collections
do
    if [ "$col" = "[" ] || [ "$col" = "]" ]
    then
        continue
    else
        echo "Exporting $col"
        mongoexport --uri $mongoAccess --collection=$col --type json --out output-$col.json
    fi
    
done

其他回答

请让我们知道您在哪里安装了Mongo DB?(Ubuntu或Windows)

Windows:

在导出之前,您必须在cmd提示符中连接到您的Mongo DB,并确保您能够连接到您的本地主机。 现在打开一个新的cmd提示符并执行以下命令, mongodb——db数据库名——out保存路径 例如:mongodb——db mydb——out c:\TEMP\op.json 详情请访问https://www.youtube.com/watch?v=hOCp3Jv6yKo。

Ubuntu的:

登录到安装Mongo DB的终端,确保能够连接到Mongo DB。 现在打开一个新终端,执行下面的命令, mongodb -d数据库名称-o要保存的文件名 例如:mongodb -d mydb -o output.json 详情请访问https://www.youtube.com/watch?v=5Fwd2ZB86gg。

有多种选择,这取决于你想做什么

1)如果你想导出你的数据库到另一个mongo数据库,你应该使用mongodump。这将创建一个包含BSON文件的文件夹,其中包含JSON不具有的元数据。

mongodump
mongorestore --host mongodb1.example.net --port 37017 dump/

2)如果你想将你的数据库导出为JSON,你可以使用mongoexport,除非你必须一次收集一个(这是设计好的)。然而,我认为用mongodb导出整个数据库,然后转换为JSON是最简单的。

# -d is a valid option for both mongorestore and mongodump

mongodump -d <DATABASE_NAME>
for file in dump/*/*.bson; do bsondump $file > $file.json; done

如果你可以接受bson格式,那么你可以使用带有相同-d标志的mongodb实用程序。它将以bson格式将所有集合转储到转储目录(默认的,可以通过-o选项更改)。然后可以使用mongorestore实用程序导入这些文件。

这是我用来实现该结果的bash脚本。该脚本被概括为4个输入(主机url、数据库、用户名和密码),因此可以在任何mongo数据库上使用。

dburl=$1
username=$3
password=$4
db=$2

mongoAccess=mongodb+srv://$username:$password@$dburl/$db

Collections=$(mongo $mongoAccess --quiet --eval "db.getCollectionNames()" | sed 's/,/ /g' | tail +6)

#echo $Collections

for col in $Collections
do
    if [ "$col" = "[" ] || [ "$col" = "]" ]
    then
        continue
    else
        echo "Exporting $col"
        mongoexport --uri $mongoAccess --collection=$col --type json --out output-$col.json
    fi
    
done

之前的答案解释得很好,我添加了我的答案,以帮助您处理远程密码保护数据库

mongodump --host xx.xxx.xx.xx --port 27017 --db your_db_name --username your_user_name --password your_password --out /target/folder/path