Open In App

How to Set a Primary Key in MongodDB?

Last Updated : 30 Apr, 2024
Improve
Improve
Like Article
Like
Save
Share
Report

In MongoDB, primary keys play an important role in uniquely identifying documents within a collection. While MongoDB doesn’t have a concept of primary keys in the same way as relational databases, it allows for the creation of unique identifiers for documents.

In this article, we’ll explore how to set a primary key in MongoDB by providing detailed explanations, and examples to understand and implement this concept effectively.

Understanding Primary Keys in MongoDB

  • In MongoDB, each document within a collection is uniquely identified by a field called the _id field.
  • The _id field serves as the primary key for the document, ensuring its uniqueness within the collection.
  • MongoDB automatically assigns a unique _id value to each document if one is not provided explicitly.

Methods for Setting Primary Keys

There are several methods for setting primary keys in MongoDB:

  • Using the _id Field: MongoDB automatically assigns a unique value to the _id field if not provided explicitly.
  • Custom _id Field: We can specify your own custom _id field with a unique value for each document.
  • Unique Index: We can create a unique index on a field to enforce uniqueness and use it as a primary key.

Let’s explore each method with examples and outputs.

1. Using the _id Field

MongoDB automatically generates a unique _id value for each document if one is not provided explicitly. Let’s see an example:

// Inserting a document without specifying the _id field
db.users.insertOne({ "name": "Alice" });

Output:

{
"_id": ObjectId("6156d8f013c92ec9f5b8b36f"),
"name": "Alice"
}

In this example, MongoDB automatically generates a unique ObjectId value for the _id field.

2. Using Custom _id Field

We can specify our own custom _id value for a document. This value should be unique within the collection to avoid conflicts. Let’s see an example:

// Inserting a document with a custom _id field
db.users.insertOne({ "_id": 1001, "name": "Bob" });

Output:

{
"_id": 1001,
"name": "Bob"
}

In this example, we explicitly specify the _id field with the value 1001.

3. Using Unique Index

We can create a unique index on a field to apply uniqueness and use it as a primary key. Let’s create a unique index on the email field:

// Creating a unique index on the email field
db.users.createIndex({ "email": 1 }, { unique: true });

Now, when inserting documents, MongoDB will enforce uniqueness on the email field, effectively making it act as a primary key.

Conclusion

Overall, Setting a primary key in MongoDB is essential for uniquely identifying documents within a collection. By understanding the various methods for setting primary keys and their implications, you can design your MongoDB schemas effectively and ensure data integrity within your database. Whether using the default _id field, specifying a custom _id value, or creating unique indexes, MongoDB provides flexibility in setting primary keys based on your application requirements.


Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads