Чтобы получить записи двухдневной давности из MongoDB, вы можете использовать различные методы в зависимости от ваших конкретных требований и структуры ваших данных. Вот несколько подходов с примерами кода:
-
Использование объекта даты:
const twoDaysAgo = new Date(); twoDaysAgo.setDate(twoDaysAgo.getDate() - 2); const query = { createdAt: { $gte: twoDaysAgo } }; const result = await db.collection('yourCollection').find(query).toArray(); console.log(result);Этот код создает объект
Date, представляющий два дня назад, и использует его в запросе для получения записей с полемcreatedAt, большим или равным этой дате.Этот код создает объект
Date, представляющий два дня назад, и использует его в запросе для получения записей с полемcreatedAt, большим или равным этой дате. -
Использование библиотеки Moment.js:
const moment = require('moment'); const twoDaysAgo = moment().subtract(2, 'days').toDate(); const query = { createdAt: { $gte: twoDaysAgo } }; const result = await db.collection('yourCollection').find(query).toArray(); console.log(result);В этом примере мы используем библиотеку Moment.js, чтобы вычесть два дня из текущей даты и преобразовать ее в объект
Date. Остальная часть кода аналогична предыдущему методу. -
Использование платформы агрегации MongoDB:
const twoDaysAgo = new Date(); twoDaysAgo.setDate(twoDaysAgo.getDate() - 2); const pipeline = [ { $match: { createdAt: { $gte: twoDaysAgo } } }, { $project: { _id: 0, field1: 1, field2: 1 } } // Specify the fields you want to retrieve ]; const result = await db.collection('yourCollection').aggregate(pipeline).toArray(); console.log(result);Этот метод использует структуру агрегации MongoDB для фильтрации записей на основе поля
createdAtи проецирования в результат только нужных полей. -
Использование строки ISODate:
const twoDaysAgo = new Date(Date.now() - 2 * 24 * 60 * 60 * 1000).toISOString(); const query = { createdAt: { $gte: new Date(twoDaysAgo) } }; const result = await db.collection('yourCollection').find(query).toArray(); console.log(result);В этом примере мы вычисляем строку ISODate, представляющую два дня назад, используя текущую метку времени. Затем мы преобразуем его обратно в объект
Dateдля запроса.