복합 인덱스에 고유 제약 조건을 시행하다 . 고유한 복합 인덱스 인덱스 키 값 조합에 고유성을 적용합니다.
MongoDB Shell 에서 고유 인덱스 생성하려면 db.collection.createIndex() 옵션을 로 설정하다 하여 unique 메서드를 true 사용합니다.
db.collection.createIndex( { <field1>: <sortOrder>, <field2>: <sortOrder>, ... <fieldN>: <sortOrder> }, { unique: true } )
이 작업에 대하여
이 예시 members 컬렉션 의 groupNumber, lastname, firstname 필드에 고유한 복합 인덱스 추가합니다. 인덱스 이러한 필드 값의 조합이 컬렉션 의 각 문서 에 대해 고유하도록 합니다.
단계
컬렉션 의, 및 필드에 고유 인덱스 생성하려면 groupNumber lastname firstname members mongosh에서 다음 명령을 실행 .
db.members.createIndex( { groupNumber: 1, lastname: 1, firstname: 1 }, { unique: true } )
생성된 인덱스는 groupNumber, lastname 그리고 firstname 값의 조합에 대해 고유성을 강제합니다.
내장된 배열이 있는 필드의 복합 고유 인덱스
다음 문서 포함된 컬렉션 생각해 보세요.
db.myColl.insertOne( { _id: 1, a: [ { loc: "A", qty: 5 }, { qty: 10 } ] } )
a.loc 및 a.qty에 고유한 복합 멀티키 인덱스 만들기.
db.myColl.createIndex( { "a.loc": 1, "a.qty": 1 }, { unique: true } )
고유 인덱스는 a.loc과 a.qty 값 조합에 대해 고유성을 강제하므로, 고유 인덱스는 다음 문서를 컬렉션에 삽입할 수 있게 합니다.
db.myColl.insertMany( [ { _id: 2, a: [ { loc: "A" }, { qty: 5 } ] }, { _id: 3, a: [ { loc: "A", qty: 10 } ] } ] )