用户将链接插入 Mongo Collection,我想根据集合中特定链接的出现次数来检索最受欢迎的链接。对于静态数据,例如有多少链接来自 Youtube,您可以执行以下操作:
Meteor.users.find({ "site": "youtube" }).count()
但是如何处理动态数据,例如链接:
Meteor.users.find({ "url": "youtube.com/watch?v=u1z4vkPWkLQ" }).count()
编辑:
如何在客户端显示?当我执行以下操作时,控制台中出现错误,提示 Videos.aggregate in not a function。
Template.frontPage.helpers({
mostDownloadedVideos: function() {
return Videos.aggregate(
[
{ $unwind : "$filename"},
{ $group : { _id : "$filename", number : { $sum : 1} } },
{ $sort : {number : -1} },
{ $limit : 3 }
]
);
}
});
最佳答案
您可以使用aggregate蒙戈的功能。对于您的情况:
Meteor.users.aggregate([
{ $project : { popular : { $url : "$url" } } } ,
{ $group : { _id : {url:"$url"} , number : { $sum : 1 } } },
{ $sort : { "_id.number" : -1 } }
])
通过此功能,您可以获取最高结果或根据受欢迎程度显示列表。
关于javascript - 查找Mongo Collection中动态生成数据的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32956684/