9

我不知道该怎么做,我需要将 mongodb 集合导出为 .csv。在节点中使用 spawn.child_process 调用 mongoexport 将完成此操作,但我的 mongodb 服务器和节点服务器当前位于不同的机器上。

如何从我的节点服务器远程调用我的 mongo 服务器上的 mongoexport,然后将 .csv 获取到节点服务器?

4

4 回答 4

17

首先,确保 MongoDB 端口已打开,并且您可以从服务器连接。然后,使用

mongoexport --username user --password pass --host host --db database --collection coll --type=csv --fields=displayName,emailAddress --query='{"status": "verified"}' -o users-YEAR-DAY-MONTH.csv

如果服务器位于公共网络中,请确保使用身份验证。

https://docs.mongodb.com/manual/security/

或者,运行 ssh 命令可能更简单,mongoexport在 MongoDb 服务器上运行,然后sftp返回文件(可能先压缩它)。

有关mongoexport的更多信息

于 2012-10-24T11:30:54.413 回答
3

我使用了@GianfrancoP 的答案,但不推荐使用语法。您现在需要包含要导出的字段名。这是更新的语法:

mongoexport --username user --password pass --host host --db database --collection coll --type=csv --fields fieldname
于 2017-01-28T19:31:30.807 回答
0

GianPaJ 给出的答案是我正在使用的解决方案,但缺点是它仅将导出的数据输出到远程主机,而不是您的客户端。

一种解决方法是对导出的文件使用 SCP 或 SFTP。如果我弄清楚如何使用 mongoexport 选项实际传输该文件,我将更新这篇文章。

于 2013-03-11T17:26:36.093 回答
0

我创建了这个命令来跳过 stfp 步骤来导出我的数据库。

ssh user@remote_host_ip  "mongoexport --host localhost --db dbname --username username --password pass --authenticationDatabase admin --collection collectionname --fields field1,field2 --type=csv" >> export.csv

如果您在 mongodb 上应用了身份验证,则可以 ssh 远程并提供 mongodb 用户名、密码和身份验证数据库,否则跳过它。这将在本地系统上创建 export.csv。

于 2020-03-31T11:09:13.107 回答