Any MongoDB developer will tell you that MongoDB is a document-oriented DBMS (database management system), with JSON-like objects comprising the data model, as opposed to the RDBMS (relational database management system) tables. While it does not support joins or transactions, MongoDB features secondary indexes, an expressive query language, atomic writes on a per-document level, and fully consistent reads. This database management system uses BSON, a binary object format similar to JSON, but more expressive.

Another important detail for any MongoDB developer is that this system uses dynamic schemas. The user can create collections without defining the structure (the fields or the types of their values) of the documents. The system allows the user to change the structure of documents simply by adding new fields or deleting existing ones. Documents in a collection need a unique set of fields.

Rather than using tables, a MongoDB developer will tell you that this type of system stores the data in collections, these being a rough equivalent of RDBMS tables. A collection can hold one or more documents which correspond to a record or a row in a relational database table and each document has one or more fields that will correspond to a column in a relational database table.

MongoDB does not support multi-document transactions. Instead, the system provides atomic operations on a single document. In most cases, these document-level atomic operations will prove sufficient to solve problems that would require ACID transactions in a relational database.

The MongoDB system allows the user to embed related data in nested arrays or nested documents within a single document and update the entire document in a single atomic operation. Relational databases might represent the same kind of data using multiple tables and rows, but that would require transaction support to update the data atomically.