Как эффетивнее всего получить все документы, которые старше 1 дня?

В MongoDB для получения всех документов, которые старше 1 дня, можно использовать оператор $lt в комбинации с функцией new Date().

Для начала, вам понадобится коллекция, в которой хранятся ваши документы. Вы можете использовать оператор $lt вместе с условием даты, чтобы найти все документы, у которых поле "дата" (date) меньше чем new Date() - 24*60*60*1000:

db.collection.find({ date: { $lt: new Date() - 24*60*60*1000 } })

В этом запросе мы используем выражение new Date() - 24*60*60*1000, чтобы получить точку во времени, которая находится ровно за 24 часа назад.

Выражение 24*60*60*1000 означает 24 часа, 60 минут, 60 секунд и 1000 миллисекунд в одном дне. Мы вычитаем это количество миллисекунд из текущей даты, чтобы получить дату, которая была вчера.

Если ваше поле даты имеет другое имя, вы также можете заменить date на нужное имя в запросе. Таким образом, вы получите все документы, у которых значение поля "дата" (date) меньше чем вчерашняя дата.

Кроме того, при желании можно использовать оператор $gte, чтобы учесть все документы, созданные не ровно 24 часа назад, а ранее. Примерно так:

db.collection.find({ date: { $gte: new Date() - 24*60*60*1000 } })

Здесь мы использовали оператор $gte (больше или равно), чтобы получить все документы, у которых поле "дата" (date) больше или равно вчерашней дате. Если у вас есть какие-либо вопросы, не стесняйтесь задавать!