문서의 여러 필드를 검색해야하는 검색 기능을 사용하고 있습니다.몽구스 문서의 색인 생성
나는 다음과 같은 경우가 있습니다
1) 필드 1은, FIELD2, FIELD3는 문자열 (nayyar)
2) 모든 문서 필드 1, FIELD2, FIELD3, 입력란 4 일치를 가져 오기를 입력란 4 일치하는 모든 문서를 가져옵니다 문자열 (nayyar) AND gender는 (입력 값) 또는 'N/A'여야합니다.
3) field1, field2, field3, field4가 문자열 (nayyar)과 일치하는 모든 문서를 가져오고 age는 ageHigh와 ageLow 사이 여야하며 AND gender는 (입력 값) 또는 'N/A'여야합니다.
4) field1, field2, field3, field4가 문자열 (nayyar)과 일치하는 모든 문서 가져 오기 AND age는 ageHigh와 ageLow 사이 여야하며 AND gender는 (입력 값) 또는 'N/A'여야하고 ArrayField는 'atoz '.
var Schema = new Schema({
lowAge : {
type: Number,
default: 0
},
highAge : {
type: Number,
default: 0
},
gender : {
type: String,
default: 'N/A'
},
field1 : {
type: String
},
field2 : {
type: String
},
field3 : {
type: String
},
field4 : {
type: String
},
arrayField : {
type: [String]
}
});
Schema.index({field1:1, field2:1, field3:1, field4:1});
Schema.index({field1:1, field2:1, field3:1, field4:1, arrayField:1,lowAge:1, highAge:1, gender:1,});
색인을 생성하는 올바른 방법입니까?
나는 스크립트를 실행하여 한 번에 컬렉션을 만들 예정입니다. 따라서 데이터를 삽입하는 동안의 성능은 문제가되지 않습니다. 네, 모든 경우에 네 개의 필드가 있고 다른 필드는 다른 경우가 있습니다. 나이와 성별 필드에 지수를 추가하지 않으면 실적에 영향을 미칩니 까? 나는 250,0000 개의 문서를 질의해야합니다. –
네 개의 필드로 데이터를 필터링 한 후에 250,000 문서가 없다고 가정합니다.당신은 합계의 작은 부분 집합을 가질 것이고, 일반적으로 MongoDB는 인덱스없이 그것을 처리 할 수 있어야합니다. 문서의 모든 필드가 색인에 추가 된 것을 본 적이 없습니다. 확실히, 이것은 정확하지 않습니다. – notionquest
시간 내 주셔서 감사 드리며 정말로 도움이됩니다. –