2017-10-09 2 views
0

우리는 매우 큰 컬렉션을 가지고 있으며 여러 개의 인덱스가 있습니다. 우리는 어떻게 든 그것을 가리키는 Objects의 가장 높은 번호가 열쇠를 얻을 수있는 경우 index 이후쿼리?

는 기본적으로 키와 인덱스 필드 및 값으로 ObjectID의 목록과 테이블, 우리는 궁금했다. 예를 들어

, 우리는 모음이있는 경우 : "a"의 인덱스를 거기

{ _id: 1, a : 1, b : 1 }, 
{ _id: 2, a : 2, b : 2 }, 
{ _id: 3, a : 2, b : 3 }, 
{ _id: 4, a : 2, b : 4 }, 
{ _id: 5, a : 3, b : 4 }, 
{ _id: 6, a : 3, b : 4 }, 
{ _id: 7, a : 4, b : 4 } 

합니다. - "2"우리가 어떻게 든 객체의 긴 목록 인덱스 값을 조회하고 싶습니다

index a: 

"1" => [ 1 ], 
"2" => [ 2, 3, 4 ], 
"3" => [ 5, 6 ], 
"4" => [ 7 ] 

하는 경우 : 나는이 다음과 같습니다 어딘가에 테이블을 가정합니다.

MongoDB에서 가능한 것이 있습니까?

답변

0

대답은 '아니오'입니다.

실제로 인덱스에는 데이터에 대한 포인터 인 문서 objectId의 목록이 없습니다. 문서의 objectId를 가져 오려면 시스템에서 디스크로 이동해야합니다. 따라서 검색어에 답변 할 수있는 색인이 있고 결과에 _id이 필요하지 않은 경우 항상 결과가 반환 될 수 있도록 project {_id : 0, key1 : 1, key2 : 1, keyX : 1}을 기억해야합니다. 인덱스에서 가져오고 디스크에 갈 필요가 없습니다.