MongoDB में किसी फ़ील्ड को यूनिक बनाने के लिए इंडेक्स बनाते समय unique: true विकल्प का उपयोग करें। आइए एक संग्रह बनाते हैं:
> db.demo82.createIndex({"EmployeeName":1},{unique:true});
{ "createdCollectionAutomatically" : true, "numIndexesBefore" : 1, "numIndexesAfter" : 2, "ok" : 1 }
> db.demo82.insertOne({"EmployeeName":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e2bfb1b71bf0181ecc422a0") }
> db.demo82.insertOne({"EmployeeName":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e2bfb1f71bf0181ecc422a1") }
> db.demo82.insertOne({"EmployeeName":"Chris"});
2020-01-25T13:54:00.410+0530 E QUERY [js] WriteError: E11000 duplicate key error collection: test.demo82 index: EmployeeName_1 dup key: { : "Chris" } : WriteError({
"index" : 0,
"code" : 11000,
"errmsg" : "E11000 duplicate key error collection: test.demo82 index: EmployeeName_1 dup key: { : \"Chris\" }",
"op" : {
"_id" : ObjectId("5e2bfb2071bf0181ecc422a2"),
"EmployeeName" : "Chris"
}
}) 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
सभी दस्तावेज़ देखने के लिए:
> db.demo82.find();
आउटपुट (डुप्लिकेट मान डाला नहीं गया):
{ "_id" : ObjectId("5e2bfb1b71bf0181ecc422a0"), "EmployeeName" : "Chris" }
{ "_id" : ObjectId("5e2bfb1f71bf0181ecc422a1"), "EmployeeName" : "David" }
व्याख्या: createIndex() में {unique:true} विकल्प यह सुनिश्चित करता है कि EmployeeName फ़ील्ड में डुप्लिकेट मान नहीं डाले जा सकते। डुप्लिकेट डालने का प्रयास करने पर E11000 duplicate key error त्रुटि आती है।