그래서 고유성을 검증하기 위해 MongoDB에서 검색 콜렉션을 작성해야합니다. 요구 사항은 동일한 2 개의 값이 반복되는지 확인하는 것입니다. SQL에서, 위 쿼리 수를 반환하면이사용자 정의 MongoDB 오브젝트 _id와 복합 인덱스
SELECT count(id) WHERE key1 = 'value1' AND key2 = 'value2'
같은 그때는 조합이 고유하지 의미합니다. 나는 2 가지 솔루션을 염두에두고 있지만 어떤 것이 더 확장 성이 있는지 확신 할 수 없다. 이 매핑을 생성해야하는 30M + 문서가 있습니다.
Solution1:
내가 키 1과 키 2에 복합 인덱스 문서의 컬렉션을 만들
{
_id: <MongoID>,
key1: <value1>,
key2: <value2>
}
이 Solution2 :이
내가 응용 프로그램 논리를 쓰기는 사용자 정의 연결하여 _ID 작성하려면 값 1 및 값 2
{
_id: <value1>_<value2>
}
개인적으로 두 번째 인덱스는 단일 인덱스 만 있고 의사 크기가 더 작기 때문에 개인적으로 더 최적화되었습니다. 그러나 완전히 무작위가 아니기 때문에 자신의 _id 인덱스를 만드는 것이 좋은 방법인지 확실하지 않습니다. 어떻게 생각해?
미리 감사드립니다.
업데이트 :
내 데이터베이스가 이미 내가 특별히에만 고유성을 확인하는 데 사용되는 컬렉션을 위해 가능한 한 낮은 인덱스 크기를 유지 할 수 있도록 메모리를 차지 인덱스 많이있다.
SQL 개수가 1보다 크고 값이 고유하지 않음을 의미합니까? 솔루션 2에서 MongoDB에 중복 값이로드되지 않습니다. 괜찮습니까? – notionquest
아니요, SQL 개수가 0보다 커야한다는 의미였습니다. 1이라는 의미는 항목이 이미 있으므로 복제본을 추가해서는 안된다는 의미입니다. 솔루션 2의 경우 mongo가 정확하게 내가 원하는대로 중복을 추가하지 못하도록해도 괜찮습니다. – umair