当前位置: 首页 > 知识库问答 >
问题:

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

易波涛
2023-03-14

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

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

有没有办法向我的CosmosDB实例添加额外的API?如果没有,将来会有办法做到这一点吗?

更新:我刚刚用Mongo api创建了一个Cosmos DB帐户,注意到查询浏览器仍然可用,并允许我输入和执行SQL/DocumentDB查询,因此显然默认情况是同时允许两个api(Mongo和SQL/DocumentDB)。然而,我不确定如何获取ConnectionString(AccountKey),以便可以像azure门户在我自己的客户端中那样使用DocumentDB/SQL API。有人知道如何使用Mongo API从CosmosDB设置连接字符串,使其成为DocumentDB/Sql API的有效连接字符串吗?

共有3个答案

公良修竹
2023-03-14

这里的答案不再有效,不。虽然在技术上可能是可能的。您必须坚持在创建数据库时选择的那个。

唯一可能的组合是Gremlin和SQLAPI。从这里阅读

https://docs.microsoft.com/en-us/azure/cosmos-db/faq#can-i-use-multiple-api-to-access-my-data

颛孙沈义
2023-03-14

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

AFAIK,Azure Cosmos DB目前支持多种数据模型(键值、文档、图形和列)。每个数据模型都有用于访问数据的相关API,包括MongoDB、DocumentDB SQL、Gremlin(预览)和Azure表(预览)。

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

As使用Azure CLI创建Azure Cosmos DB帐户,说明了用于创建数据库帐户的< code>kind参数:

要创建的 Azure Cosmos DB 数据库帐户的类型。

允许的值:GlobalDocumentDB、MongoDB、Parse。

默认值:GlobalDocumentDB。

有没有办法向我的CosmosDB实例添加额外的API?如果没有,将来会有办法做到这一点吗?

据我所知,没有方法可以让你实现它。此外,您可以在此处添加您的反馈。

呼延修然
2023-03-14

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

首先,使用MongoDB API创建一个新的CosmosDB帐户。一旦提供了这个新的CosmosDB帐户,您将无法像使用DocumentDB/Sql API配置的CosmosDB帐户那样找到“Keys”刀片。

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

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

现在,您可以在正在使用的任何客户端 API(.Net、Python 等)中使用其中一个密钥,并对您的宇宙数据库执行 DocumentDB/Sql 查询,即使它仅配置为使用 MongoDB API 也是如此。

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

 类似资料:
  • 由于TypeScript是强类型的,因此简单地使用来检查和听起来是不对的。 TypeScript是否有任何专门的函数或语法糖对此?

  • 问题内容: 请考虑以下表格: 部 员工 编写查询以返回人员总数为4或更多的那些部门的雇员的empname和deptname列。记录应按姓氏的字母顺序返回 这是我的看法: 您将如何对此进行改进? 问题答案: 这比较短,而且执行速度可能也更快 从分组开始。您不需要内部查询中的COUNT。然后,联接两个表只是为了获得名称。 *之所以使用 *INNER JOIN, 是因为一旦计数完成,我们已经知道 员工存

  • 问题内容: 我想根据一个简单的标准更新一组行,并获取已更改的PK列表。我以为我可以做这样的事情,但担心可能出现的并发问题: 如果将其包装在事务中,是否会发生任何并发问题?还是有更好的方法来做到这一点? 问题答案: 考虑查看OUTPUT子句:

  • 问题内容: 我有一堆规则要注入到一组类中,如下所示: 我怎样才能包括对应列出了常见的规则列表和? 规则的数量(例如rule1,rule2等)更多,而组的数量(normalInvRules,prepaidInvRules等)也更多。因此,我想知道是否有一种方法可以避免重复通用规则,而仅列出特定规则并包括对通用列表的引用。 问题答案: 确实有一个称为“集合合并”的功能。见3.3.3.4.1节。我就此主

  • 当数据不断传来时,整个堆栈向左移动时,条形图是动态添加的,有没有办法将第一个条形图的颜色设置为不同的颜色?谢谢。 编辑和解决方案:这是我在图表中添加新条目的代码,它每500毫左右动态发生一次。 感谢@Philip Jahoda,我让它正常工作,只需在您的addEntry方法中添加这段代码:

  • 我有一个使用SpringCloud配置的SpringBoot应用程序,但我想在SpringBootApps引导程序中加密SpringCloud配置密码。yml文件。有办法做到这一点吗?下面是一个例子。 Spring Boot应用程序bootstrap.yml