먼저 'items.barcode'
필드에 고유 인덱스를 추가하십시오.MongoDB의 임베드 문서에서 배열 유형 필드에 고유 인덱스 추가
db.clothes.createIndex({'items.barcode': 1}, {unique: 1});
그런 다음 clothes
테이블에 일부 문서를 삽입하십시오.
'E11000 duplicate key error index: duolayimeng.clothes1.$items.barcode_1 dup key: { : "122" }'
그러나 1 문서의 두 삽입 문서의
,'barcode'
필드의 3 개 요소
'122'
입니다있다 :
db.clothes1.remove({});
db.clothes.insert([
{ // success
_id: '1',
items: [
{barcode: ['122', '122']},
{barcode: ['122', '124']}
]
},
{ // success
_id: '2',
items: [
{barcode: ['222', '223']},
{barcode: ['224', '225']}
]
},
{ // failed
_id: '3',
items: [
{barcode: ['122', '323']},
{barcode: ['324', '325']}
]
}
]);
이제 우리는 오류가 발생, 3 문서가 실패 삽입 볼 수 있습니다.
나는이 상황에 대해 당혹 스럽다. MongoDB가 'items.barcode'
과 같은 임베드 문서의 배열 유형 필드를 결정하는 방식은 고유한가요?