У меня есть коллекция геопространственных + временных данных с несколькими дополнительными свойствами, которые я буду показывать на карте. На данный момент коллекция содержит несколько миллионов документов и со временем будет расти.MongoDB Индексирование: множественное однополюсное и одно соединение?
Каждый документ имеет следующие поля:
- Адрес: [GeoJSON объект]
- Дата: [Дата объект]
- ZoomLevel: [int32]
- EntryType: [ObjectID]
Мне нужно иметь возможность быстро запросить эту коллекцию с помощью любой комбинации местоположения (как правило, запроса geowithin), даты (обычно $ gte/$ lt), ZoomLevel и EntryType.
Что мне интересно: Должен ли я составлять составной индекс, содержащий все четыре поля, или один индекс для каждого поля или их комбинацию? Я прочитал в документации MongoDB следующее:
Для получения индекса соединения, который включает в себя ключ индекса 2dsphere вместе с ключей других типов, только поле Индекс 2dsphere определяет, имеет ли ссылки индекс документа.
... Как это звучит, означает, что индекс 2dsphere для местоположения может быть составным индексом, может быть бессмысленным?
Любая ясность в отношении этого будет очень признательна.
Aha! Спасибо, что указали на бит 2dsphere с разреженным вариантом. Теперь имеет смысл. – DanM