0Pricing
MongoDB Academy · 课时

MongoDB 与 DynamoDB:云原生权衡

学习者将评估 AWS DynamoDB 的完全无服务器模型何时胜过 MongoDB Atlas 更灵活的查询能力,以及反之何时成立。

MongoDB 与 DynamoDB:云原生权衡 是 CoddyKit 上的免费 MongoDB Academy 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 MongoDB Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 MongoDB Academy 课程共包含 4 节课。

本课时的部分内容尚未翻译,以英文显示。

Two Cloud NoSQL Approaches

AWS DynamoDB and MongoDB Atlas are both cloud NoSQL databases, but with very different philosophies. DynamoDB is AWS's fully serverless NoSQL service — no servers to manage, automatic scaling, pay-per-request pricing. MongoDB Atlas is a managed cloud service but still based on server clusters with richer operational control. The choice often comes down to: how much infrastructure control do you want, and how complex are your query patterns?

DynamoDB's Serverless Value Proposition

DynamoDB is truly serverless: there are no instances to choose, no cluster sizing decisions, no replica set configuration. AWS automatically scales read/write capacity based on demand, handles sharding invisibly, and guarantees single-digit millisecond latency at any scale. For teams that want zero operational overhead and tight AWS integration (IAM roles, Lambda triggers, Streams), DynamoDB eliminates an entire category of infrastructure decisions.

DynamoDB's Rigid Data Model

DynamoDB's primary access model is limited: every table has a partition key (required) and an optional sort key. Items are retrieved by exact partition key match, optionally filtered by sort key range. There is no general-purpose query engine — ad-hoc queries require either a Global Secondary Index (GSI) designed at table creation, or a full table Scan (expensive and slow). This forces access-pattern-first schema design, similar to Cassandra.

// DynamoDB: item identified by partition key + sort key
// Table: Orders
// Partition key: customerId
// Sort key: orderId

// Fetch all orders for a customer — fast
await dynamo.query({
  TableName: 'Orders',
  KeyConditionExpression: 'customerId = :cid',
  ExpressionAttributeValues: { ':cid': 'cust-123' }
}).promise()

// Find all orders with status = 'pending' — requires GSI or Scan
// A Scan reads the ENTIRE table — avoid in production

MongoDB Atlas's Rich Query Model

MongoDB Atlas supports the same rich query model as self-hosted MongoDB — aggregation pipelines, $lookup joins, text search, geospatial queries, and arbitrary field filters with compound indexes. Query patterns can evolve after launch by simply adding a new index. This flexibility is a major advantage for applications where requirements change frequently or are not fully known at design time.

// MongoDB: ad-hoc query across multiple fields
db.orders.aggregate([
  {
    $match: {
      status: 'pending',
      createdAt: { $gte: new Date('2024-06-01') },
      'items.category': 'electronics'
    }
  },
  { $group: { _id: '$customerId', totalPending: { $sum: '$total' } } },
  { $sort: { totalPending: -1 } },
  { $limit: 10 }
])
// No equivalent in DynamoDB without expensive Scan + application-side grouping

Pricing Model Differences

DynamoDB offers two pricing modes: On-Demand (pay per read/write request — great for unpredictable traffic) and Provisioned (reserve capacity units in advance — cheaper for predictable workloads with auto-scaling). MongoDB Atlas charges by cluster tier (instance size + storage), making costs more predictable at consistent load but higher at low traffic. For bursty or event-driven workloads with zero traffic between events, DynamoDB's pay-per-request can be dramatically cheaper.

AWS Ecosystem Integration

DynamoDB integrates natively with the broader AWS ecosystem. DynamoDB Streams emit change events that trigger AWS Lambda functions — identical to MongoDB Change Streams but within AWS. IAM authentication means no separate database credentials to manage. Point-in-time recovery and backup are configured with a few clicks. For teams already deeply invested in AWS (Lambda, API Gateway, Cognito, S3), DynamoDB minimises context switching.

MongoDB Atlas's Cross-Cloud Portability

MongoDB Atlas runs on AWS, Azure, and GCP — you are not locked into one cloud provider. You can deploy a multi-region cluster spanning AWS and Azure. Self-hosted MongoDB on your own servers is identical in behaviour to Atlas, so you can migrate between cloud and on-premises. DynamoDB is AWS-only; migrating away requires rewriting your data access layer. For organisations with multi-cloud strategies or regulatory data residency requirements, Atlas's portability is a significant advantage.

DynamoDB's Consistency Options

DynamoDB offers eventually consistent reads (default — lower latency, lower cost) and strongly consistent reads (higher latency, 2x cost). Writes are always strongly consistent within a single item. DynamoDB also supports transactions (TransactWriteItems / TransactGetItems) for atomic operations across multiple items — up to 100 items per transaction. These are similar to MongoDB's multi-document transactions but are billed at double the normal read/write unit cost.

Document Size and Schema Flexibility

Both databases support flexible, schema-free documents. DynamoDB items can be up to 400 KB; MongoDB documents up to 16 MB. For rich media metadata, long text content, or large nested structures, MongoDB's larger document limit is important. DynamoDB's 400 KB limit means large payloads must be split or stored in S3 with a DynamoDB reference — adding complexity. For typical structured data under 400 KB, the limit rarely matters.

When to Choose DynamoDB

Choose DynamoDB when: your team is AWS-native and wants zero infrastructure management; traffic is bursty or unpredictable (Lambda-backed APIs, event-driven systems); your access patterns are simple and well-defined upfront (key-value lookups and sorted ranges); or you need tight Lambda/IAM integration without managing connection pools. Single-page applications with a REST API and simple CRUD against DynamoDB are classic fits.

When to Choose MongoDB Atlas

Choose MongoDB Atlas when: query patterns evolve or are complex (aggregations, joins, full-text search); your team needs multi-cloud or on-premises portability; documents may be larger than 400 KB; you need Atlas Search, Vector Search, or Data Federation; or your application already uses MongoDB locally and you want zero friction moving to cloud. MongoDB is also the stronger choice if rich analytics pipelines are a first-class requirement.

Quick Check

Test your understanding of MongoDB & NoSQL Databases concepts from this lesson.

Lesson Recap

In this lesson you learned: DynamoDB's serverless model and AWS-native integration make it ideal for bursty event-driven workloads with simple, pre-defined access patterns, MongoDB Atlas offers richer queries, larger documents, and multi-cloud portability that DynamoDB cannot match, and the key tradeoff is operational simplicity and AWS lock-in (DynamoDB) versus query flexibility and cross-cloud freedom (MongoDB). Next up we explore when to use a graph database like Neo4j instead of MongoDB.

常见问题解答

「MongoDB 与 DynamoDB:云原生权衡」课时是免费的吗?

是的 — 「MongoDB 与 DynamoDB:云原生权衡」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 MongoDB Academy 课程的其余内容,请升级到 CoddyKit PRO。 MongoDB Academy 课程共包含 4 节课。

「MongoDB 与 DynamoDB:云原生权衡」这节课中我会学到什么?

学习者将评估 AWS DynamoDB 的完全无服务器模型何时胜过 MongoDB Atlas 更灵活的查询能力,以及反之何时成立。 你通过在浏览器中直接运行的动手代码来练习 MongoDB Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 MongoDB Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 MongoDB Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。

「MongoDB 与 DynamoDB:云原生权衡」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 MongoDB Academy 课中编写并运行代码吗?

能。每节 MongoDB Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. MongoDB 与 Redis:文档数据库与键值缓存
  2. MongoDB 与 Cassandra:行星级写入
  3. MongoDB 与 DynamoDB:云原生权衡
  4. 何时使用 Neo4j 等图数据库
← 返回 MongoDB Academy