CosmosDB DocumentDB-API与CosmosDB MongoDB-API?

时间:2017-05-17 00:36:22

标签: mongodb azure-cosmosdb

由于DocumentDB和MongoDB都是面向文档的数据库,因此它们似乎可以为相同类型的数据建模,并且两者都非常适合解决相同的问题。

除了不同的生态系统,DocumentDB对Azure的锁定以及团队的优势/经验,在选择其中一个时还有什么需要考虑的吗?

我认为,由于DocumentDB是由Microsoft为Azure开发的,考虑到CosmosDB架构,它会比MongdoDB API具有成本优势吗?与相同类型的数据存储相比,MongoDB-API上的DocumentDB-API具有多大的成本优势。请求?

我正在尝试在CosmosDB DocumentDB-API和CosmosDB MongoDB-API之间为新项目做出决定。感谢。

如果您要在CosmosDB上开始一个新项目,并且同样了解DocumentDB和MongoDB,并且需要一个面向文档的数据库,您会选择哪种API以及为什么?

3 个答案:

答案 0 :(得分:2)

您应该选择对您的特定情况最有意义的API - 其中包括要考虑的大量因素,例如:这是一个绿地项目与现有项目,您的特定数据访问模式是什么样的,您使用标准JSON数据类型与MongoDB特定数据类型等。

长期目标是在所有Cosmos DB API之间实现稳健性。话虽如此,DocumentDB API是最经过长时间测试的,因为它已经存在了很长一段时间。

答案 1 :(得分:2)

如果您需要直接在不支持的平台(如PHP)上访问数据库,我只会使用MongoDB API。使用DocumentDB API时,您需要使用REST API。有一个用于PHP的MongoDB API,因此这将更加方便。

DocumentDB API是为CosmosDB制作的,因此它将具有最广泛的功能集。

请记住,CosmosDB不提供所有MongoDB功能。缺少汇总框架,因此您没有$groupbydistinct,......可供您使用。尽管MS说可以将CosmosDB用作托管的MongoDB解决方案,但在切换到CosmosDB之前,您应该仔细检查所需内容。

答案 2 :(得分:1)

有很多事情需要考虑,但我还没有提到的一点是,DocumentDb不支持不替换整个文档的更新操作。而MongoDb有$ set,$ unset,$ push,$ pull和其他一些允许你修改文档部分的运算符。