Можно ли сортировать значения даты MongoDB с точностью?
Я хотел бы упорядочить результаты по дате, но меня не волнуют данные о часах/минутах/секундах. Я бы предпочел не хранить дополнительный параметр, например «20101215».
Можно ли сортировать значения даты MongoDB с точностью?
Я хотел бы упорядочить результаты по дате, но меня не волнуют данные о часах/минутах/секундах. Я бы предпочел не хранить дополнительный параметр, например «20101215».
Короткий ответ на ваш вопрос: «Нет». Это невозможно без сохранения другого поля. Даже если бы это было возможно, вы бы не захотели b/c при сортировке в Mongo, вам действительно нужно индексировать поля, по которым вы сортируете, иначе БД нужно будет сканировать каждый документ в БД, чтобы выполнить сортировку. Поэтому, если бы вы делали то, что предлагаете, вам также нужно было бы индексировать поле частичной даты, что также невозможно в монго.
Я думаю, что лучшим подходом было бы хранить 2 поля: одно для года/месяца/дня, а другое для часа/мин/сек. Тогда у вас будет больше гибкости при сортировке и индексации. Это не так чисто или идеально, как вам, вероятно, хотелось бы, но это единственный вариант с db.
Другим вариантом было бы уточнить порядок в вашем приложении после того, как будут возвращены результаты.
ORDER BY DATE(created), priority
. - person ceejayoz   schedule 17.12.2010