4

由于 DocumentDB 和 MongoDB 都是面向文档的 DB,它们似乎可以对相同类型的数据进行建模,并且都非常适合解决相同的问题。

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

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

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

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

4

3 回答 3

2

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

DocumentDB API 是为 CosmosDB 设计的,因此它具有最广泛的功能集。

请记住,CosmosDB 并未提供所有 MongoDB 功能。缺少聚合框架,因此您没有$groupby, distinct, ... 可供您使用。尽管 MS 说 CosmosDB 可以用作托管 MongoDB 解决方案,但在切换到 CosmosDB 之前,您应该仔细检查您需要什么。

于 2017-05-20T16:39:06.013 回答
2

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

长期目标是在所有 Cosmos DB API 之间的健壮性方面实现对等。话虽如此,DocumentDB API 是最久经考验的,因为它已经存在了很长时间。

于 2017-05-17T01:00:31.197 回答
2

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

于 2017-08-24T08:27:58.120 回答