гранулярность в сортировке даты MongoDB? - PullRequest
2 голосов
/ 16 декабря 2010

Можно ли отсортировать значения даты MongoDB с детализацией?

Я хотел бы упорядочить результаты по дате, но мне не нужны данные часа / минуты / секунды.Я бы предпочел не хранить дополнительный параметр, например «20101215».

1 Ответ

1 голос
/ 28 декабря 2010

Короткий ответ на ваш вопрос - «Нет».Это невозможно без сохранения другого поля.Даже если бы это было возможно, вы бы не захотели использовать b / c при сортировке в Mongo, вам действительно нужно индексировать поля, по которым вы сортируете, иначе БД должен будет сканировать каждый документ в БД, чтобы выполнить сортировку.Поэтому, если вы будете делать то, что вы предлагаете, вам также нужно будет индексировать поле частичной даты, что также невозможно в монго.

Я думаю, что наилучшим подходом было бы хранить 2 поля, одно для года / месяца / дня и другое для часа / минуты / секунды.Тогда у вас будет больше гибкости в сортировке и индексации.Он не такой чистый или идеальный, как вам хотелось бы, но это единственный вариант с БД.

Другой вариант - уточнить порядок в вашем приложении после возвращения результатов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...