据我所知,无法在一个操作中执行此操作,但是您可以添加一个单独的字段,其中包含视图+喜欢,以及用户排序desc +限制:20
您可以使用project获取喜欢的次数,然后将其与另一个项目进行管道传输,并add观看和喜欢。
db.demo.aggregate([{
$project: {
likes: {
$size: "$likes"
},
views: 1,
}
}, {
$project: {
total: {
$add: [
"$likes", "$views"
]
}
}
},{
$sort : {
total : -1
}
},{
$limit : 20
}])