DEV Community

丁久
丁久

Posted on • Originally published at dingjiu1989-hue.github.io

NoSQL Databases Guide (MongoDB, DynamoDB, Firestore)

This article was originally published on AI Study Room. For the full version with working code examples and related articles, visit the original post.

NoSQL Databases Guide (MongoDB, DynamoDB, Firestore)

NoSQL Databases Guide (MongoDB, DynamoDB, Firestore)

NoSQL Databases Guide (MongoDB, DynamoDB, Firestore)

NoSQL Databases Guide (MongoDB, DynamoDB, Firestore)

NoSQL Databases Guide (MongoDB, DynamoDB, Firestore)

NoSQL Databases Guide (MongoDB, DynamoDB, Firestore)

NoSQL Databases Guide (MongoDB, DynamoDB, Firestore)

NoSQL Databases Guide (MongoDB, DynamoDB, Firestore)

What Are NoSQL Databases?

NoSQL databases are non-relational data stores designed for specific data models and access patterns that do not fit well in the relational paradigm. They trade strict ACID guarantees for scalability, flexibility, and performance at scale.

NoSQL Database Types

| Type | Examples | Best For | Avoid For | |------|----------|----------|-----------| | Document | MongoDB, Firestore | JSON-like data, flexible schemas | Complex joins | | Key-Value | Redis, DynamoDB | Simple lookups, caching | Multi-key queries | | Wide-Column | Cassandra, Bigtable | Time-series, write-heavy | Ad-hoc queries | | Graph | Neo4j, Dgraph | Relationships, recommendations | Simple CRUD |

MongoDB

MongoDB stores data as flexible JSON-like documents in collections. It is schema-less by design.

Data Modeling

// MongoDB document (embedded)

{

"_id": ObjectId("5f8c..."),

"username": "alice",

"email": "alice@example.com",

"profile": {

"display_name": "Alice",

"avatar_url": "https://...",

"bio": "Software engineer"

},

"addresses": [

{

"type": "home",

"street": "123 Main St",

"city": "San Francisco"

}

],

"created_at": ISODate("2026-01-15T10:30:00Z")

}

Query Examples

// Basic queries

db.users.find({ email: "alice@example.com" })

db.users.find({ "addresses.city": "San Francisco" })

db.users.find({ created_at: { $gte: ISODate("2026-01-01") } })

// Aggregation pipeline

db.orders.aggregate([

{ $match: { status: "completed" } },

{ $group: { _id: "$customer_id", total: { $sum: "$amount" } } },

{ $sort: { total: -1 } },

{ $limit: 10 }

])

// Index creation

db.users.createIndex({ email: 1 }, { unique: true })

db.orders.createIndex({ customer_id: 1, created_at: -1 })

When to Use MongoDB

  • Flexible or evolving schemas

  • Embedded data relationships (one-to-few)


Read the full article on AI Study Room for complete code examples, comparison tables, and related resources.

Found this useful? Check out more developer guides and tool comparisons on AI Study Room.

Top comments (0)