【问题标题】:I need to call mongoexport remotely and get the result from node.js我需要远程调用 mongoexport 并从 node.js 获取结果
【发布时间】:2012-10-14 09:56:36
【问题描述】:

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

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

【问题讨论】:

    标签: node.js mongodb csv remote-server


    【解决方案1】:

    我创建了这个命令来跳过 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。

    【讨论】:

      【解决方案2】:

      首先,确保 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 命令可能更简单,在 MongoDb 服务器上运行 mongoexport 然后 sftp 返回文件(可能先压缩它)。

      更多信息mongoexport

      【讨论】:

      • 这绝对是正确的方法。我在尝试登录时收到“身份验证失败”错误。我的用户没有密码,所以我在 mongoexport 中将该字段留空。我确实使用私钥通过 ssh 连接到这些服务器,这需要在这里发挥作用吗?
      • 您可以在ssh -i identity_file 上指定 sshkey,但这是另一个主题
      • 它似乎在没有设置用户名或密码的情况下运行
      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

        • mongoexport --host {host} -f {fields} -d {db} - c {coll} --csv -o {absolute_local_path} 为我在本地保存以绝对路径指定的文件。
        猜你喜欢
        • 2019-11-01
        • 2012-10-14
        • 1970-01-01
        • 2019-06-13
        • 2012-12-29
        • 2015-03-14
        • 1970-01-01
        • 1970-01-01
        • 2013-04-10
        相关资源
        最近更新 更多