由于DocumentDB和MongoDB都是面向文档的数据库,因此它们似乎可以为相同类型的数据建模,并且两者都非常适合解决相同的问题。
除了不同的生态系统,DocumentDB对Azure的锁定以及团队的优势/经验,在选择其中一个时还有什么需要考虑的吗?
我认为,由于DocumentDB是由Microsoft为Azure开发的,考虑到CosmosDB架构,它会比MongdoDB API具有成本优势吗?与相同类型的数据存储相比,MongoDB-API上的DocumentDB-API具有多大的成本优势。请求?
我正在尝试在CosmosDB DocumentDB-API和CosmosDB MongoDB-API之间为新项目做出决定。感谢。
如果您要在CosmosDB上开始一个新项目,并且同样了解DocumentDB和MongoDB,并且需要一个面向文档的数据库,您会选择哪种API以及为什么?
答案 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功能。缺少汇总框架,因此您没有$groupby
,distinct
,......可供您使用。尽管MS说可以将CosmosDB用作托管的MongoDB解决方案,但在切换到CosmosDB之前,您应该仔细检查所需内容。
答案 2 :(得分:1)
有很多事情需要考虑,但我还没有提到的一点是,DocumentDb不支持不替换整个文档的更新操作。而MongoDb有$ set,$ unset,$ push,$ pull和其他一些允许你修改文档部分的运算符。