Tạo unique index để đảm bảo tính duy nhất
Sử dụng createIndex() (thay thế ensureIndex() đã deprecated) với option unique: true để ngăn chèn trùng giá trị.
Tạo unique index trên SubjectName
> db.demo316.createIndex(
{ "SubjectName": 1 },
{ unique: true }
);
Thử chèn dữ liệu
> db.demo316.insertOne({"SubjectName": "MySQL"}); // Thành công
> db.demo316.insertOne({"SubjectName": "MongoDB"}); // Thành công
> db.demo316.insertOne({"SubjectName": "MongoDB"}); // LỖI
Lỗi trùng khóa
WriteError: E11000 duplicate key error collection: test.demo316
index: SubjectName_1 dup key: { : "MongoDB" }
Kiểm tra dữ liệu
> db.demo316.find();
{ "_id": ..., "SubjectName": "MySQL" }
{ "_id": ..., "SubjectName": "MongoDB" }
Lưu ý: Unique index tự động tạo index thông thường. MongoDB cũng hỗ trợ partial unique index (chỉ áp dụng cho document thỏa điều kiện).