2012-03-04 2 views

답변

4

: 당신이 문서의 인덱스 최상위 필드 할 수있는 당신은 하위 문서에 포함 된 필드에 인덱스를 만들 수 임베디드 분야

인덱싱. [...] 대신 포함 된 필드의 색인을 사용하면 "도트 표기법"을 사용하여 하위 문서를 검토 할 수 있습니다.

[...]

db.people.ensureIndex({ "address.zipcode": 1 }) 

Mongoid 같은 Dot Notation 사용 : 당신은뿐만 아니라 임베디드 문서 필드에 인덱스를 정의 할 수 있습니다

.

class Person 
    include Mongoid::Document 
    embeds_many :addresses 
    index "addresses.street" 
end 

그래서 당신은 다음과 같이 원하는 :

class C 
    include Mongoid::Document 
    index 'address.city' 
    index 'address.country' 
    #... 
end 
+0

을하지만 주소가 포함 된 문서가 아닙니다. 그것은 간단한 해시 필드입니다. –

+0

@ CoffeeBite : 시도해 보셨습니까? 샘플 데이터와 일치하는 빠른 콜렉션을 설정하고, 'address.city'에'ensureIndex'를 한 다음에'db.x.find ({'address.city ':'c '}). ''BtreeCursor address.city_1 ''이 쿼리에 사용되고 인덱스가 사용되고 있음을 나타냅니다. –

관련 문제