Я пытаюсь понять, как лучше всего работать с индексами в MongoDB. Допустим, что у меня есть набор документов, как этот:Индексы комплекса MongoDB
{
_id: 1,
keywords: ["gap", "casual", "shorts", "oatmeal"],
age: 21,
brand: "Gap",
color: "Black",
gender: "female",
retailer: "Gap",
style: "Casual Shorts",
student: false,
location: "US",
}
и я регулярно запускать запрос, чтобы найти все документы, которые соответствуют набору критериев для каждой из этих областей, что-то вроде:
db.items.find({ age: { $gt: 13, $lt: 40 },
brand: { $in: ['Gap', 'Target'] },
retailer: { $in: ['Gap', 'Target'] },
gender: { $in: ['male', 'female'] },
style: { $in: ['Casual Shorts', 'Jeans']},
location: { $in: ['US', 'International'] },
color: { $in: ['Black', 'Green'] },
keywords: { $all: ['gap', 'casual'] }
})
Я пытаюсь понять, какой индекс я могу создать для улучшения скорости запроса, такого как это. Должен ли я создавать составной индекс следующим образом:
db.items.ensureIndex({ age: 1, brand: 1, retailer: 1, gender: 1, style: 1, location: 1, color: 1, keywords: 1})
или есть лучший набор индексов, которые я могу создать для оптимизации этого запроса?
Давайте предположим, что я только добавить около 1000 документов в этой коллекции в день, и добавить их все в одном пакете во время простоя приложения, поэтому эффективно я никогда не пишу в коллекцию, только чтение из него. – TheDelChop