Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MongoDB

Ngăn chặn trùng lặp tên trong MongoDB với unique index

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).