나는 sort(a:-1)
이 에 색인 ensured
을 사용하지만 반대 방향 (즉, a:1
)에 색인을 사용하는지 궁금합니다.색인이`sort()`의 반대 방향으로 확보되면 사용됩니까?
단일 키 인덱스의 경우는 같지만 MongoDB 설명서에서 정보를 찾을 수 없으므로 확실하게 알고 싶습니다.
나는 sort(a:-1)
이 에 색인 ensured
을 사용하지만 반대 방향 (즉, a:1
)에 색인을 사용하는지 궁금합니다.색인이`sort()`의 반대 방향으로 확보되면 사용됩니까?
단일 키 인덱스의 경우는 같지만 MongoDB 설명서에서 정보를 찾을 수 없으므로 확실하게 알고 싶습니다.
단일 필드 인덱스를 사용하여 정렬하는 경우 MongoDB가 인덱스를 어느 방향 으로든 탐색 할 수 있으므로 키 순서는 중요하지 않습니다. 당신은 설명 명령을 사용하여 해당를하여 확인할 수 있습니다 :
"cursor" : "BtreeCursor a_-1 reverse"
reverse
:
db.coll.find().sort({a: 1}).explain();
출력 관련 부분은 (당신은 출력의 다른 필드에 대한 docs를 확인해야합니다) 부분은 MongoDB가 역순으로 인덱스를 통과 한 것을 의미합니다.
그러나 정렬을 위해 복합 색인을 사용하는 경우 정렬 순서가 중요합니다. 예를 들어, 다음과 같은 화합물 지수 걸릴 :
이db.coll.ensureIndex({a: 1, b: -1});
이 인덱스는이 정렬 작업을 지원할 수 있습니다
db.coll.find().sort({a: 1, b: -1});
db.coll.find().sort({a: -1, b: 1});
을하지만,이 인덱스를 수 없습니다 지원이 정렬 작업은 :
db.coll.find().sort({a: 1, b: 1});
정렬에 대한 자세한 내용은 documentation을 확인해야합니다.