[MONGODB] 스파 스 인덱스와 몽고에 null 값
MONGODB스파 스 인덱스와 몽고에 null 값
내가 올바르게 스파 스 인덱스를 이해 모르겠어요.
나는 fbId에 스파 스 고유 인덱스를
{
"ns" : "mydb.users",
"key" : {
"fbId" : 1
},
"name" : "fbId_1",
"unique" : true,
"sparse" : true,
"background" : false,
"v" : 0
}
그리고 그 날이 fbId로서 null 레코드를 삽입 할 수 있도록 할 기다리고 있었다,하지만 그건 중복 키 예외가 발생합니다. 그것은 단지 fbId 속성이 완전히 제거 된 경우 나 삽입 할 수 있습니다.
스파 스 인덱스는 처리 아닌가요?
해결법
-
==============================
1.스파 스 인덱스는 인덱스 필드를 그리워 문서를 포함하지 않습니다. 필드가 존재하고 널 (null)의 값을 갖고있는 경우, 그것은 여전히 색인이 될 것입니다. 분야 및 응용 프로그램에 대해 동일한 널 모양에의 평등의 누락됩니다 당신이 fbId의 고유성을 유지하려는 경우이 값을 때까지 그래서, 그냥 삽입하지 마십시오.
스파 스 인덱스는 인덱스 필드를 그리워 문서를 포함하지 않습니다. 필드가 존재하고 널 (null)의 값을 갖고있는 경우, 그것은 여전히 색인이 될 것입니다. 분야 및 응용 프로그램에 대해 동일한 널 모양에의 평등의 누락됩니다 당신이 fbId의 고유성을 유지하려는 경우이 값을 때까지 그래서, 그냥 삽입하지 마십시오.
당신이 많은 문서가 있지만 그 중 작은 부분이 어떤 필드를 포함 할 때 스파 스 인덱스를해야하고, 신속하게 해당 필드로 문서를 찾을 수 있어야합니다. 일반 인덱스가 너무 비싼 것 만들기, 당신은 당신이에 관심이하지 않는 문서를 색인에 귀중한 RAM을 낭비 것입니다.
-
==============================
2.인덱스의 최대 성능을 보장하기 위해, 우리는 당신이 인덱스를 수행하는 분야가 포함되지 않은 문서를 색인 생략 할 수 있습니다. 이 MongoDB를 수행하려면 다음과 같이 작동 스파 스 속성이 있습니다 :
인덱스의 최대 성능을 보장하기 위해, 우리는 당신이 인덱스를 수행하는 분야가 포함되지 않은 문서를 색인 생략 할 수 있습니다. 이 MongoDB를 수행하려면 다음과 같이 작동 스파 스 속성이 있습니다 :
db.addresses.ensureIndex( { "secondAddress": 1 }, { sparse: true } );
이 지수는 모든 기록한 secondAddress 필드를 포함하지 않는 및 쿼리를 수행 할 때, 그 문서를 검사하지 않습니다를 생략합니다.
나 기본 인덱스와 그들의 속성 중 일부에 대한이 문서를 공유 할 수 있습니다 :
지리 공간, 텍스트, 해시 인덱스와 독특하고 희소 속성 : http://mongodbspain.com/en/2014/02/03/mongodb-indexes-part-2-geospatial-2d-2dsphere/
-
==============================
3.
{a:1, b:5, c:2} {a:8, b:15, c:7} {a:4, b:7} {a:3, b:10}
이제 우리는 위의 문서에 인덱스를 생성하고자한다고 가정하자. A와 B에 인덱스를 생성하는 것은 문제가되지 않습니다. 그러나 우리는 C에 인덱스를 만드는 데 무엇을해야하는 경우. 널 (null) 값이이 개 문서에 대한 중복되기 때문에 고유 제한 조건은 C 키를 작동하지 않습니다. 이 경우 해결책은 스파 스 옵션을 사용하는 것입니다. 이 옵션은 키를 벗어났습니다 문서를 포함하지 않도록 데이터베이스를 알려줍니다. 우려의 명령은 db.collectionName.createIndex입니다 (: {1 일} {독특한 : 사실, 스파 스 : TRUE}). 스파 스 인덱스는 우리뿐만 아니라 공간을 적게 사용할 수 있습니다.
from https://stackoverflow.com/questions/8608567/sparse-indexes-and-null-values-in-mongo by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] 컬렉션 대 MongoDB를 데이터베이스 (0) | 2019.12.24 |
---|---|
[MONGODB] 몽구스, 발견, 반환 특정 속성 (0) | 2019.12.24 |
[MONGODB] _id 필드가없는 mongoexport (0) | 2019.12.24 |
[MONGODB] MongoDB의에서 업데이트의 집계 (0) | 2019.12.24 |
[MONGODB] MongoDB를이 - 코드 종료 : 62 (0) | 2019.12.24 |