Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我需要远程调用mongoexport并从node.js获取结果_Node.js_Mongodb_Csv_Remote Server - Fatal编程技术网

我需要远程调用mongoexport并从node.js获取结果

我需要远程调用mongoexport并从node.js获取结果,node.js,mongodb,csv,remote-server,Node.js,Mongodb,Csv,Remote Server,我不知道该怎么做,我需要将mongodb集合导出为.csv。在节点中使用spawn.child_进程调用mongoexport将完成此任务,但我的mongodb服务器和节点服务器当前位于不同的计算机上 如何从节点服务器远程调用mongo服务器上的mongoexport,然后将.csv发送到节点服务器?首先,确保MongoDB端口已打开,并且您可以从服务器进行连接。 然后,使用 mongoexport --username user --password pass --host host --db

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


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

首先,确保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
如果服务器位于公共网络中,请确保使用身份验证

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


更多信息

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


一种解决方法是在导出的文件上使用SCP或SFTP。如果我知道如何使用mongoexport选项传输该文件,我将更新这篇文章。

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

mongoexport --username user --password pass --host host --db database --collection coll --type=csv --fields fieldname

我创建此命令是为了跳过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。

这绝对是正确的方法。尝试登录时出现“身份验证失败”错误。我的用户没有密码,所以我在mongoexport中将该字段留空。我确实使用私钥ssh进入这些服务器,这需要在这里发挥作用吗?您可以在
ssh-I identity_文件
上指定sshkey,但这是另一个主题,它似乎在运行时没有设置用户名或传递
mongoexport--host{host}-f{fields}-d{db}-c{coll}--csv-o{absolute local path}
在本地为我保存绝对路径中指定的文件。