Syntax error Prevent duplicates of multiple fields with index in MongoDB

Prevent duplicates of multiple fields with index in MongoDB



To prevent duplicates of multiple fields, use ensureIndex() and set unique:true. Let us create a collection with documents −

> db.demo272.ensureIndex({"FirstName":1,"Subject":1},{unique:true});
{
   "createdCollectionAutomatically" : true,
   "numIndexesBefore" : 1,
   "numIndexesAfter" : 2,
   "ok" : 1
}
> db.demo272.insertOne({"FirstName":"Chris","Subject":"MySQL"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e48232a1627c0c63e7dbabf")
}
> db.demo272.insertOne({"FirstName":"Chris","Subject":"MongoDB"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e48232f1627c0c63e7dbac0")
}
> db.demo272.insertOne({"FirstName":"David","Subject":"MySQL"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e48233a1627c0c63e7dbac1")
}
> db.demo272.insertOne({"FirstName":"Chris","Subject":"MySQL"});
2020-02-15T22:28:55.137+0530 E QUERY    [js] WriteError: E11000 duplicate key error collection: test.demo272 index: FirstName_1_Subject_1 dup key: { : "Chris", : "MySQL" } :
WriteError({
   "index" : 0,
   "code" : 11000,
   "errmsg" : "E11000 duplicate key error collection: test.demo272 index: FirstName_1_Subject_1 dup key: { : \"Chris\", : \"MySQL\" }",
   "op" : {
      "_id" : ObjectId("5e48234f1627c0c63e7dbac2"),
      "FirstName" : "Chris",
      "Subject" : "MySQL"
   }
})
WriteError@src/mongo/shell/bulk_api.js:461:48
Bulk/mergeBatchResults@src/mongo/shell/bulk_api.js:841:49
Bulk/executeBatch@src/mongo/shell/bulk_api.js:906:13
Bulk/this.execute@src/mongo/shell/bulk_api.js:1150:21
DBCollection.prototype.insertOne@src/mongo/shell/crud_api.js:252:9
@(shell):1:1

Display all documents from a collection with the help of find() method −

> db.demo272.find();

This will produce the following output −

{ "_id" : ObjectId("5e48232a1627c0c63e7dbabf"), "FirstName" : "Chris", "Subject" : "MySQL" }
{ "_id" : ObjectId("5e48232f1627c0c63e7dbac0"), "FirstName" : "Chris", "Subject" : "MongoDB" }
{ "_id" : ObjectId("5e48233a1627c0c63e7dbac1"), "FirstName" : "D
okavid", "Subject" : "MySQL" }
Updated on: 2020-03-31T08:52:18+05:30

482 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements