Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
Selected Reading
Insert in MongoDB without duplicates
To insert records in MongoDB and avoid duplicates, create a unique index on the field that should not contain duplicate values. When you attempt to insert a document with a duplicate value, MongoDB will reject the operation with an error.
Syntax
db.collection.createIndex({"fieldName": 1}, { unique: true });
db.collection.insert({"fieldName": "value"});
Example
Let's create a unique index on the StudentFirstName field and attempt to insert duplicate records ?
Step 1: Create Unique Index
db.insertWithoutDuplicateDemo.createIndex({"StudentFirstName":1},{ unique: true });
{
"createdCollectionAutomatically" : true,
"numIndexesBefore" : 1,
"numIndexesAfter" : 2,
"ok" : 1
}
Step 2: Insert Documents
db.insertWithoutDuplicateDemo.insertMany([
{"StudentFirstName": "Chris"},
{"StudentFirstName": "David"},
{"StudentFirstName": "Bob"}
]);
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("5e064405150ee0e76c06a054"),
ObjectId("5e064410150ee0e76c06a055"),
ObjectId("5e06441f150ee0e76c06a057")
]
}
Step 3: Attempt Duplicate Insert
Now try inserting a duplicate "Chris" record ?
db.insertWithoutDuplicateDemo.insert({"StudentFirstName": "Chris"});
WriteError({
"nInserted" : 0,
"writeError" : {
"code" : 11000,
"errmsg" : "E11000 duplicate key error collection: test.insertWithoutDuplicateDemo index: StudentFirstName_1 dup key: { : "Chris" }"
}
})
Verify Results
db.insertWithoutDuplicateDemo.find().pretty();
{
"_id" : ObjectId("5e064405150ee0e76c06a054"),
"StudentFirstName" : "Chris"
}
{
"_id" : ObjectId("5e064410150ee0e76c06a055"),
"StudentFirstName" : "David"
}
{
"_id" : ObjectId("5e06441f150ee0e76c06a057"),
"StudentFirstName" : "Bob"
}
Key Points
- The unique index prevents duplicate values in the specified field
- MongoDB returns error code
11000when attempting to insert duplicates - Existing documents remain unchanged when duplicate inserts fail
Conclusion
Creating a unique index is the most effective way to prevent duplicate records in MongoDB. The database automatically rejects any insert operation that would create duplicate values in the indexed field.
Advertisements
