从 Azure MongoDB 导出集合

问题描述 投票:0回答:1

所以我在 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个回答
5
投票

您可能有一些不正确的参数,并且缺少一个参数:

  • 您确定您的数据库名称是

    admin
    吗?

  • 您需要指定--tlsInsecure

  • 对于主机/端口:这应该类似于:

    /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 /tlsInsecure /d <database> /c <collection> /o <outputfile>.json
© www.soinside.com 2019 - 2024. All rights reserved.