首页 文章

有没有办法配置CosmosDB同时使用SQL(DocumentDB)和MongoDB API?

提问于
浏览
3

当我在Azure门户中创建新的CosmosDB数据库时,我必须在各种API(Gremlin,MongoDB,SQL / DocumentDB和Table)之间进行选择 .

与Azure门户的许多其他限制一样,我希望有一种方法可以使用PowerShell或Azuzre cli配置新的CosmosDB以使用多个API .

有没有办法在我的CosmosDB实例中添加其他API?如果没有,将来有没有办法做到这一点?

Update: 我刚刚使用Mongo api创建了一个Cosmos DB帐户,并注意到Query Explorer仍然可用,并允许我输入并执行SQL / DocumentDB查询,因此显然默认是允许两个API(Mongo和SQL / DocumentDB) . 但是,我不确定如何获取ConnectionString(AccountKey),以便我可以像azure门户在我自己的客户端中那样使用DocumentDB / SQL API . 任何人都有关于如何使用Mongo API从CosmosDB设置连接字符串的想法,以便它是DocumentDB / Sql API的有效连接字符串?

2 回答

  • 5

    您可以通过执行以下操作在同一个CosmosDB帐户中使用MongoDB API和DocumentDB / Sql API(这可能也适用于使用Gremlin和Table API设置的CosmosDB帐户,但我还没有尝试过它们 . ):

    首先,使用MongoDB API创建一个新的CosmosDB帐户 . 一旦配置了新的CosmosDB帐户,您将无法使用已使用DocumentDB / Sql API配置的CosmosDB帐户找到“密钥”刀片 .

    要获取将客户端连接到DocumentDB / Sql api所需的密钥,请运行以下Azure CLI Command

    az cosmosdb list-keys --name "<your cosmosdb account name>" --resource-group "<name of resource group your cosmosdb lives in>"
    

    现在,您可以在您使用的任何客户端API(.Net,Python等)中使用其中一个密钥,并对您的CosmosDB执行DocumentDB / Sql查询,即使它仅配置为使用MongoDB api .

    如果您的客户端API需要“连接字符串”而不是密钥,则编辑普通连接字符串以将此密钥包含在字符串的“AccountKey”部分中 .

  • 2

    与Azure门户的许多其他限制一样,我希望有一种方法可以使用PowerShell或Azuzre cli配置新的CosmosDB以使用多个API .

    AFAIK,Azure Cosmos DB目前支持多种数据模型(键值,文档,图形和列式) . 每个数据模型都有相关的API来访问数据,包括MongoDB,_ DocumentDB SQLGremlin(预览)和Azure Tables(预览) .

    创建Azure Cosmos DB数据库帐户时,需要选择具有相关API的数据模型(Azure Cosmos DB数据库帐户的类型) .

    由于Create an Azure Cosmos DB account using the Azure CLI说明了用于创建数据库帐户的 kind 参数:

    要创建的Azure Cosmos DB数据库帐户的类型 . 允许的值:GlobalDocumentDB,MongoDB,Parse . 默认值:GlobalDocumentDB .

    有没有办法在我的CosmosDB实例中添加其他API?如果没有,将来有没有办法做到这一点?

    众所周知,没有办法让你实现它 . 此外,您可以添加您的反馈here .

相关问题