所以我在 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 进行的,否则我会立即收到“找不到数据库”的信息。
我考虑过使用跳过和限制,但对于大型(和扩展)集合来说这似乎不是一个好主意?有人可以给我一些建议,告诉我如何最好地实现或克服这些障碍来下载我的收藏吗?无论如何,我只需要下载该集合即可。谢谢你。
您可能有一些不正确的参数,并且缺少一个参数:
您确定您的数据库名称是
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