2014-06-30 4 views
2

다음과 같은 구조로 구성된 MongoDB 문서가 있습니다. 수천 명의 사람들이있는이 문서가 많기 때문에 사람들에게 색인을 붙여서 작업 속도를 높이고 싶습니다. # search_columns.surname and people. # search_columns.givenname. Howe는 MongoDB에서 이것을 할 수 있습니까? 당신의 도움을 주셔서 감사합니다.중첩 된 필드에 인덱스 만들기

[_id] => MongoId Object (
    [$id] => 53b1b1ab72f4f852140dbdc9 
) 
[name] => People From 1921 
[people] => Array (
    [0] => Array (
     [name] => Barada, Valentine 
     [search_columns] => Array (
      [surname] => Array (
       [0] => Mardan, 
       [1] => Barada 
      ) 
      [givenname] => Array (
       [0] => Valentine 
      ) 
     ) 
    ) 
    [1] => Array (
     [name] => Barsaloux, Nicholas 
     [search_columns] => Array (
      [surname] => Array (
       [1] => Barsaloux 
      ) 
      [givenname] => Array (
       [0] => Nicholas 
      ) 
      [place] => Array (
      ) 
     ) 
    ) 
) 

답변

3
당신은 점 표기법을 사용하여 중첩 된 필드에 대한 인덱스를 만들 수 있습니다

:

db.collection.ensureIndex({'people.search_columns.surname': 1}); 
db.collection.ensureIndex({'people.search_columns.givenname': 1}); 
+0

감사합니다! 제가 찾은 사례는 사람들과 같은 것을했습니다. [0] .search_columns.surname, 그래서 전 세계적으로 이것을 어떻게 할 지 확신하지 못했습니다. 도와 줘서 고마워! –