длина на основе массива выборки - мангуст - PullRequest
0 голосов
/ 12 марта 2020

У меня есть массив посетителей. В зависимости от длины я хочу получить первые 40 (самых посещаемых) видео. Есть ли какой-либо запрос в пн goose для этого?

    "videos": [],
    "description": "Runs for indai",
    "status": 1,
    "_id": "5e68ee512d3fe53a4426fea5",
    "likes": [],
    "visited": [{
"_id": "5e690d28797f5b05e066104d",
"user": "::1"
},
{
"_id": "5e690d14797f5b05e066104c",
"user": "::1"
},
{
"_id": "5e690cf7797f5b05e066104b",
"user": "::1"
}],
    "comments": [],
    "embed": "https://wwdalkfa.com/idaa/46221",
    "category": "Mathrubhumi",
    "title": "Bdis idnc - Aria.",
    "link": "https://www.mdaoa.com/video/46221/dafa",
    "image": "https://www.mdaoa.com/media/videos/dstmb1/46221/1b.jpg",
    "keywords": "adjal","DAfa",
    "__v": 0

контроллер

exports.getTrendingVideos = async (req, res) => {
    try {
        const videos = await Video.find().limit(40);
        res.send(videos);
    } catch (error) {}
};

1 Ответ

0 голосов
/ 12 марта 2020

Сначала получите длину массива, а затем отсортируйте его. Вы можете сделать это следующим образом

const videos = await Video.aggregate([
    { $project: { visitedCount: { $size: '$visited' } } },
    { $sort: { $visitedCount: -1 } },
  ]).limit(40);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...