从 Azure MongoDB 导出集合

Moz*_*ina 3 azure mongodb azure-cosmosdb

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

test_collection.find({})
Run Code Online (Sandbox Code Playgroud)

这让我的光标超时了。使用

{ timeout : false }
Run Code Online (Sandbox Code Playgroud)

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

mongoexport -h host_name --port 1234 -u user_name -p password 
-d admin -c collection_name -o data.json --ssl
Run Code Online (Sandbox Code Playgroud)

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

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

Dav*_*gon 5

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

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

  • 您需要指定 --tlsInsecure

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

    /h yourcosmosaccount.documents.azure.com:10255

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

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

mongoexport 图像

这是通用命令行等效项:

mongoexport /h <host:port> /u <username> /p <password> /ssl /tlsInsecure /d <database> /c <collection> /o <outputfile>.json
Run Code Online (Sandbox Code Playgroud)