@source2003

Как найти последние документы в коллекции с условием where?

Есть коллекция на несколько миллионов документов, у каждой записи есть date: timestamp, нужно выводить последние записи, где date: timestamp > current timestamp - 5, т.е. записи за последние 5 секунд. В ответе их ожидается где-то от 0 до 300.

Я пробовал использовать функцию $where, но ответ приходит очень долго, насколько я понял, это ресурсоемкая операция.

Подскажите, как сделать этот запрос оптимальнее всего.
  • Вопрос задан
  • 178 просмотров
Решения вопроса 1
@iShatokhin
JS developer
Желательно к этому полю добавить индекс.
collection.find({
  'date': {
    $gte: new Date(Date.now() - 5000) // 5000ms = 5 секунд
  }
});

Если это поле типа Integer, а не Date, то в new Date оборачивать не надо.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы