Пн goose запрос документов, которые получили лайки за последние 24 часа - PullRequest
1 голос
/ 19 февраля 2020

У меня есть статья схема:

   var article  = new mongoose.Schema({

    ....

        likes: [{
                    id: ObjectId,
                    by: {type: ObjectId, ref: 'User'},
                    created_at: {type: Date, default: Date.now}

         }],

....
}, {timestamps: {createdAt: 'created_at'}});

, в которой я храню лайки, которые получает история. Как видите, в поле лайки хранятся пользователи, которым понравилась статья, и время, когда им понравился рассказ.

Теперь я хочу запросить все статьи, которые получили лайки за последние 24 часа Как это можно сделать в пн goose?

1 Ответ

1 голос
/ 19 февраля 2020

Вы можете использовать $ max , чтобы получить последнюю дату, подобную дате, а затем использовать $ match , чтобы проверить, больше ли эта дата, чем 24 часа go:

Model.aggregate([
    {
        $addFields: {
            lastDate: { $max: "$likes.created_at" }
        }
    },
    {
        $match: {
            lastDate: {
                $gte: new Date(ISODate().getTime() - 1000 * 60 * 60 * 24 )
            }
        }
    }
])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...