Я работаю над функцией поиска, в которой я должен искать несколько полей в документах.Индексирование в документах мангуста
У меня есть следующие случаи:
1) Получить все документы, где field1, field2, field3, Field4 соответствует строке (Найяр)
2) Получить все документы, где поле1, поле2, поле3, Field4 спичек строка (nayyar) И пол должен быть (входное значение) или «N/A».
3) Получить все документы, в которых поле1, поле2, поле3, поле4 соответствует строке (nayyar). И возраст должен быть между ageHigh и ageLow И должен быть равен (входное значение) или «N/A».
4) Получить все документы, где поле1, поле2, поле3, поле4 соответствует строке (nayyar) И возраст должен быть между ageHigh и ageLow И должен быть равен (входное значение) или 'N/A' AND 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,0000 документов.У вас будет небольшое подмножество общего числа, обычно MongoDB должен быть в порядке, чтобы справиться с этим без индекса. Я никогда не видел все поля в документе, добавленные в индекс. Определенно, это неверно. – notionquest
Спасибо за ваше время и действительно это очень полезно для меня. –