基于数组的长度-猫鼬

时间:2020-03-12 04:10:49

标签: node.js mongoose

我有访客阵列。根据长度,我想获取前40个(访问量最高的)视频。猫鼬对此有疑问吗?

    "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 :(得分:0)

首先,获取数组的长度,然后对其进行排序,您可以像这样

const videos = await Video.aggregate([
    { $project: { visitedCount: { $size: '$visited' } } },
    { $sort: { $visitedCount: -1 } },
  ]).limit(40);