MongoDB provides a rich ecosystem of features and tools beyond basic CRUD operations. Multi-document ACID transactions, supported since version 4.0 for replica sets and 4.2 for sharded clusters, ensure atomicity across multiple operations and collections. Transactions are managed through a session that calls startTransaction(), performs the operations, and then either commitTransaction() or abortTransaction(). Change streams offer a subscription-based API for real-time data changes, returning a cursor via db.collection.watch() that emits events for inserts, updates, deletes, and replacements, enabling event-driven architectures without polling the oplog.
For deployment and management, MongoDB Atlas is the fully managed cloud database service, available on AWS, Azure, and Google Cloud. It provides automated provisioning, scaling, backup, monitoring, and security features, including a free M0 tier for development. Atlas Search adds Apache Lucene-powered full-text search capabilities that go beyond basic text indexes. For local interaction, mongosh is the modern command-line shell replacing the legacy mongo shell, with syntax highlighting, intelligent autocomplete, and built-in help. MongoDB Compass provides an official graphical interface for exploring data, building queries visually, viewing query plans, managing indexes, and constructing aggregation pipelines stage by stage.
Compared to SQL databases, MongoDB differs in several key ways. Its document-based data model replaces tables with collections and rows with documents, and its schema-flexible approach eliminates the need for predefined table structures. Joins in MongoDB are performed through the $lookup aggregation stage or by embedding related data, rather than the SQL JOIN syntax. Scaling is fundamentally horizontal through sharding rather than the vertical scaling typical of relational systems. Both support ACID transactions, though SQL databases have more mature transaction implementations. For full-text search within a self-hosted MongoDB, text indexes support queries using the $text operator with $search, and results can be sorted by relevance using $meta: "textScore".