MongoDB Naming Conventions: Balance, Readability, and Consistency

Mongodb Naming Conventions

Mongodb naming conventions are an essential element to a well-designed schema. A good naming convention strikes the optimal balance between synthesis and self-explanation. It also ensures that the names are readable.

Similarly, view names should be consistent with the criteria you adopt for compound name naming. This helps avoid confusion between different users who may use the same database.


Collections in MongoDB are structures used to categorize documents using whatever system of classification the user chooses. The collection name must be unique and must contain a field called _id, similar to a primary key in relational databases.

The document store in MongoDB does not have a schema, unlike in RDBMS systems. Because of this, two documents within the same collection can have a different structure.

During the creation of a collection, it is important to consider that names are case insensitive. For example, a collection named “course” will be transformed to “courses”. Furthermore, the collections name cannot contain any of these characters: , /,?, , , or $. The last character is encoded as a underscore (_) if you use a driver that supports this encoding.


The _id field in MongoDB is the unique identifier for each document. It is generated automatically by the database for every document and has some useful properties that you can take advantage of in your queries. For example, you can use it to filter documents based on text values and sort them by order. You can also create an index on a field to make searching faster.

A field can be a top level or embedded field in a document and can start with a dollar ($) sign or a dot (.). The query language supports both types of field names and their validation rules are different for inserts and updates. For example, an update that contains a dollar ($) prefixed field name cannot be inserted.


MongoDB expresses data in a JSON-like format and saves each document as an object. This allows for a wide range of data types and allows for aggregation and analysis across large pools of data. This enables businesses to gain insights quickly.

When creating databases, you should use lowerCamelCase for the database name. It should be a unique string and should not begin with numbers. Also, the database names should not contain special characters. For example, the letters , /, and. should be encoded as _.

For collection and views names, you can use the db.getCollection() method in mongosh or a similar method for your driver. However, the maximum length for a collection or view namespace is 120 bytes. This limitation applies to collections that are not sharded or that do not have an indexed _id field.


A table in MongoDB is a set of documents that store data. Each document has a unique _id which is like the primary key in RDBMS. This allows for a flexible and scalable data model. In addition, tables can be indexed to make them faster for queries.

The table name should be descriptive and avoid using reserved words. For example, the name of a table that stores customer data should be “Customer”.

Similarly, field names should also be descriptive and not contain reserved words. In some cases, duplicate field names can cause errors. For example, when a document has a duplicate field, mongod may not insert the document or it may drop the index.

In addition, the naming convention for collection and field names should be consistent. This makes it easier for developers to understand the code.


A view is a read-only representation of the data in a collection. It is formed through the aggregation pipeline specified in the createView command. Views are writable if their underlying collection is a time series, but write operations on views return an error.

A view’s default collation is the simple binary comparison collator. A view does not inherit its underlying collection’s collation settings.

When creating a view, it is good practice to name it after its mother table and add a qualifier that designates the purpose of the view. This makes it easy for users to recognize and use the view. Also, using underscore as a separator for compound names is recommended to avoid confusion.

Return to the home screen

Leave a Reply

Your email address will not be published. Required fields are marked *