Гранулярность в сортировке даты MongoDB?
Можно ли отсортировать значения дат MongoDB с детализацией?
Я хотел бы упорядочить результаты по дате, но мне не нужны данные о часах / минутах / секундах. Я бы предпочел не хранить дополнительный параметр, например "20101215".
1 ответ
Краткий ответ на ваш вопрос - "Нет". Это невозможно без сохранения другого поля. Даже если бы это было возможно, вы бы не захотели использовать b / c при сортировке в Mongo, вам действительно нужно индексировать поля, по которым вы сортируете, иначе БД должен будет сканировать каждый документ в БД, чтобы выполнить сортировку. Поэтому, если вы будете делать то, что вы предлагаете, вам также потребуется индексировать в поле частичной даты, что также невозможно в монго.
Я думаю, что лучшим подходом было бы хранить 2 поля, одно для года / месяца / дня и другое для часа / минуты / секунды. Тогда у вас будет больше гибкости в сортировке и индексации. Он не такой чистый или идеальный, как вам хотелось бы, но это единственный вариант с БД.
Другой вариант заключается в уточнении порядка в вашем приложении после возвращения результатов.