【问题标题】:Exporting collection from a Azure MongoDB从 Azure MongoDB 导出集合
【发布时间】:2018-02-03 09:34:16
【问题描述】:

所以我在 Azure Cosmos DB 服务中有一个 MongoDB。它包含 1500 个文档的集合,我想以 JSON 格式下载整个集合。我尝试了几种方法都没有成功,即

test_collection.find({})

这给了我一个光标超时。使用

{ timeout : false }

没有帮助。然后我尝试使用 mongoexport:

mongoexport -h host_name --port 1234 -u user_name -p password 
-d admin -c collection_name -o data.json --ssl

这给了我 0 个导出的记录。防火墙IP访问控制关闭,我可以通过Mongo shell连接到数据库就好了。尝试导出其他集合也不起作用。此外,它必须是 ssl 否则我会立即得到一个“找不到数据库”。

我曾考虑过使用跳过和限制,但对于大型(和扩展)集合似乎不是一个好主意?有人可以就我如何最好地实现或克服这些障碍来下载我的收藏给我一些建议吗?没关系,我只需要下载集合。谢谢。

【问题讨论】:

    标签: mongodb azure azure-cosmosdb


    【解决方案1】:

    您可能有一些不正确的参数,以及缺少的参数:

    • 您确定您的数据库名称是admin
    • 您需要指定 --sslAllowInvalidCertificates
    • 对于主机/端口:这应该类似于:

      /h yourcosmosaccount.documents.azure.com:10255

    如果您查看 Cosmos DB 设置中的“快速启动”选项卡,您将看到mongo 的命令行字符串(在示例中为mongo.exe)。只需获取这些参数并将它们用于mongoexport

    我刚刚针对我的一个示例 Cosmos DB (MongoDB API) 数据库运行了这个,没有任何问题:

    这是通用的命令行等价物:

    mongoexport /h <host:port> /u <username> /p <password> /ssl /sslAllowInvalidCertificates /d <database> /c <collection> /o <outputfile>.json
    

    【讨论】:

    • 谢谢! -sslAllowInvalidCertificates 有所帮助。
    • 你能把完整的查询贴在这里吗!
    • @Kitwradr - 这里没有查询。这个问题是关于使用mongoexport - OP 缺少参数。我解释了这一点。我展示了运行 mongoexport 所需的一切(这解决了 OP 的问题)。如果您还有此处未涵盖的其他问题,请发布新问题。
    • @Kitwradr 你去快速修复` mongoexport /h /u /p /d /c /ssl /sslAllowInvalidCertificates /o `
    • @monikapatelIT - 啊,所以这是关于发布格式化文本与图形图像 - 从 2018 年发布的评论中并不清楚。很容易补救:我刚刚编辑了我的原始答案以包括格式化文本版本。谢谢。
    猜你喜欢
    • 2014-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多