Сортировка Бесконечного Свитка с Монго и Мангустом - PullRequest
0 голосов
/ 22 октября 2018

Как мне отсортировать коллекции монго перед вызовом find на них?Я пробовал индексировать и сортировать, но результаты все еще не в порядке.Сортировка работает, но сортирует только результаты, по которым найдено извлечение, но мне нужно извлекать результаты, уже отсортированные по порядку по дате.

 events = await Event.find({
          time: {
            $gte:new Date()
        },
          $and: [
            {
              active: true
            }
          ]
        })
          .sort("-time")
          .limit(limit)
          .skip(skip);

С примененным пределом 5:

{
  "data": {
    "searchEvents": [
      {
        "date": "2018-10-22T05:00:00.000Z",
        "events": [
          {
            "eventname": "First",
            "time": "2018-10-22T05:00:00.000Z"
          },
          {
            "eventname": "Second",
            "time": "2018-10-22T05:00:00.000Z"
          }
        ]
      },
      {
        "date": "2018-10-23T05:00:00.000Z",
        "events": [
          {
            "eventname": "Third",
            "time": "2018-10-23T05:00:00.000Z"
          }
        ]
      },
      {
        "date": "2018-10-26T05:00:00.000Z",
        "events": [
          {
            "eventname": "Fourth",
            "time": "2018-10-26T05:00:00.000Z"
          }
        ]
      },
      {
        "date": "2018-10-26T06:00:00.000Z",
        "events": [
          {
            "eventname": "Fifth",
            "time": "2018-10-26T06:00:00.000Z"
          }
        ]
      }
    ]
  }
}

С пределом 3: отображаются только 3-й, 4-й и 5-й

Используемый индекс: EventsSchema.index ({time: -1});

Дальнейшее уточнение разъяснение вопроса: я пытаюсь отсортировать результаты моего бесконечного свитка.В основном Монго тянет 10 документов, и я сортирую эти результаты, затем, когда пользователь получает общее значение, он снова пропускает первые 10. Проблема в том, что это не в порядке.Если я хочу, чтобы данные были отсортированы по дате.В настоящее время он возвращает 10 лучших результатов и сортирует их по дате ПОСЛЕ нахождения на основе «естественного порядка».Как я могу найти Монго на основе даты?* Пожалуйста, имейте в виду, что index и sort () оба сортируют после.

1 Ответ

0 голосов
/ 22 октября 2018

использовать mongoose-paginate

или

Запросить все результаты ... Упорядочить и ограничить эти результаты.

...