СРЕДНИЙ стек - сортировка по дате не работает - PullRequest
0 голосов
/ 27 января 2019

Я пытался sort мои записи в соответствии с датой и временем.Но мой результат не сортируется должным образом.

Я храню время в MongoDB, используя new Date() -

let timestamp = new Date();

Вот запрос, который приводит ordered и paginated документы -

Product.find({})
    .sort({created_time: sortDirection})
    .skip(pageSize * pageNumber)
    .limit(pageSize)
    .select('name price currency bot_enabled created_time')
    .exec();

Здесь sortDirection является либо 1, либо -1 из условной логики.Все остальные функции find() работают нормально, кроме sort({created_time: sortDirection}).Он работает, но не может сортировать по дате и времени.

Я что-то упустил в своем коде?

Заранее спасибо!

РЕДАКТИРОВАТЬ

Вот моя структура коллекции -

var productSchema = new Schema({
  name: {
    type: String,
    required: true
  },
  price: String,
  currency: String,
  description: String,
  bot_enabled: Boolean,
  created_time: String
}, { versionKey: false });

1 Ответ

0 голосов
/ 29 января 2019

Сделайте ваш тип поля "create_time" "Date" как показано ниже.

var productSchema = new Schema({
  name: {
    type: String,
    required: true
  },
  price: String,
  currency: String,
  description: String,
  bot_enabled: Boolean,
  created_time: Date
}, { versionKey: false });

Это может не работать в ваших старых данных, но после изменения типа поля схемы и сохранения даты в формате даты, это будет работать.

...