MongoDB कलेक्शन में डुप्लिकेट दस्तावेज़ों को रोकने के लिए, आप उस फ़ील्ड पर एक यूनिक इंडेक्स बना सकते हैं जो यूनिक होना चाहिए। unique: true विकल्प का उपयोग करें और साथ में dropDups: true (नोट: MongoDB 3.0+ में dropDups हटा दिया गया है; इसके बजाय डुप्लिकेट्स को मैन्युअली हटाएं)।
सिंटैक्स
db.yourCollectionName.ensureIndex({yourFieldName: 1}, {unique: true})
उदाहरण
आइए एक डेमो कलेक्शन बनाएं और FirstName फ़ील्ड पर यूनिक इंडेक्स लागू करें:
> db.demo604.ensureIndex({FirstName: 1}, {unique: true})
{
"createdCollectionAutomatically" : true,
"numIndexesBefore" : 1,
"numIndexesAfter" : 2,
"ok" : 1
}
अब दस्तावेज़ डालें:
> db.demo604.insertOne({FirstName:"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e960887ed011c280a0905d8") }
> db.demo604.insertOne({FirstName:"Bob"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e96088aed011c280a0905d9") }
> db.demo604.insertOne({FirstName:"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e96088ded011c280a0905da") }
> db.demo604.insertOne({FirstName:"Chris"}); // डुप्लिकेट
// त्रुटि: E11000 duplicate key error collection: test.demo604 index: FirstName_1 dup key: { : "Chris" }
दस्तावेज़ देखें
> db.demo604.find();
आउटपुट:
{ "_id" : ObjectId("5e960887ed011c280a0905d8"), "FirstName" : "Chris" }
{ "_id" : ObjectId("5e96088aed011c280a0905d9"), "FirstName" : "Bob" }
{ "_id" : ObjectId("5e96088ded011c280a0905da"), "FirstName" : "David" }
नोट: MongoDB 3.0+ में dropDups विकल्प उपलब्ध नहीं है। मौजूदा डुप्लिकेट्स को हटाने के लिए, एग्रीगेशन पाइपलाइन या मैन्युअल स्क्रिप्ट का उपयोग करें।