ใช้เฉพาะและตั้งค่าเป็น TRUE ให้เราใช้สิ่งเดียวกันโดยสร้างดัชนีและตั้งค่าสองคอลัมน์ให้ไม่ซ้ำกัน -
>db.keepTwoColumnsUniqueDemo.createIndex({"StudentFirstName":1,"StudentLastName":1},{unique:true}); { "createdCollectionAutomatically" : true, "numIndexesBefore" : 1, "numIndexesAfter" : 2, "ok" : 1 }
ตอนนี้คุณสามารถแทรกเอกสารในคอลเลกชันข้างต้น -
>db.keepTwoColumnsUniqueDemo.insertOne({"StudentFirstName":"John","StudentLastName":"Smith","StudentAge":21}); { "acknowledged" : true, "insertedId" : ObjectId("5cd30fd7b64f4b851c3a13e5") } >db.keepTwoColumnsUniqueDemo.insertOne({"StudentFirstName":"John","StudentLastName":"Doe","StudentAge":23}); { "acknowledged" : true, "insertedId" : ObjectId("5cd30fe5b64f4b851c3a13e6") } >db.keepTwoColumnsUniqueDemo.insertOne({"StudentFirstName":"John","StudentLastName":"Smith","StudentAge":24}); 2019-05-08T22:50:42.803+0530 E QUERY [js] WriteError: E11000 duplicate key error collection: sample.keepTwoColumnsUniqueDemo index: StudentFirstName_1_StudentLastName_1 dup key: { : "John", : "Smith" } : WriteError({ "index" : 0, "code" : 11000, "errmsg" : "E11000 duplicate key error collection: sample.keepTwoColumnsUniqueDemo index: StudentFirstName_1_StudentLastName_1 dup key: { : \"John\", : \"Smith\" }", "op" : { "_id" : ObjectId("5cd30feab64f4b851c3a13e7"), "StudentFirstName" : "John", "StudentLastName" : "Smith", "StudentAge" : 24 } }) 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
ด้านบน เนื่องจากเราตั้งค่าให้สองคอลัมน์ไม่ซ้ำกัน และตอนนี้เรากำลังพยายามรวมค่าที่ซ้ำกัน ข้อผิดพลาดต่อไปนี้จะมองเห็นได้ -
duplicate key error collection
ต่อไปนี้เป็นแบบสอบถามเพื่อแสดงเอกสารทั้งหมดจากคอลเลกชันโดยใช้วิธี find() -
> db.keepTwoColumnsUniqueDemo.find().pretty();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
{ "_id" : ObjectId("5cd30fd7b64f4b851c3a13e5"), "StudentFirstName" : "John", "StudentLastName" : "Smith", "StudentAge" : 21 } { "_id" : ObjectId("5cd30fe5b64f4b851c3a13e6"), "StudentFirstName" : "John", "StudentLastName" : "Doe", "StudentAge" : 23 }