Технически вам не нужно очертить свой контент и просто нужно индексировать свое поле. Да, вы можете создать индекс на поле даты и будет соблюден, который вы можете увидеть, посетив план запроса db.collection.explain («executionStats»)
Однако Выбор ключа осколка очень важно. Есть несколько вещей, которые следует учитывать при выборе осколок ключа
- Write scaling (high cardinality, Randomization)
- Query Isolation. (read)
выбрать поле даты на самом деле дает очень высокую мощность, однако она не в этом рандомизации и в результате все документы хранятся в одном осколке и, следовательно, его ограничивает емкость записи системы. По той же причине ObjectId не рекомендуется использовать в качестве ключа осколка.
http://docs.mongodb.org/manual/core/sharding-shard-key/ Содержимое из приведенной выше ссылки .. «MongoDB генерирует ObjectId значения при создании документа для получения уникального идентификатора для объекта. Тем не менее, наиболее значимые биты данных в этом значении представляет собой метку времени, что означает, что они увеличиваются в регулярном и предсказуемом шаблоне.Хотя это значение имеет высокую мощность, при использовании любой даты или другого монотонно увеличивающегося числа в качестве ключа осколка все операции вставки будут хранить данные в один кусок, и, следовательно, единый осколок. В результате емкость записи этого осколка определит эффективную емкость записи кластера ».
... подразумевая, что в какой-то момент «старые» данные будут переноситься с одного сервера на другой? –
Зачем вам это нужно? Вам все равно потребуется указатель на указанное поле даты, если вам нужно получить доступ к более старым значениям ** и **, вы уменьшили бы объем полезной ОЗУ, наложив ненужные накладные расходы. Если вам ** действительно ** не нужны старые данные, просто удалите его или (если вы хотите сохранить драгоценную память, но сохраните старые данные) переместите ее в коллекцию с меньшим количеством индексов –
@Markus W Mahlberg обычная поведение заключается в том, что в индексе используются только индексы. поэтому, поскольку мы обычно запрашиваем новые данные, новый индекс находится в ram. да, когда есть запрос на широкий диапазон, у нас есть конкурс ресурсов, но это происходит, возможно, два раза в неделю. – KIC