javascript - 查找Mongo Collection中动态生成数据的次数

标签 javascript mongodb meteor

用户将链接插入 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/

相关文章:

javascript - Docker 不接受代理 api 服务器

javascript - Google Signin getImageUrl() 图像大小

javascript - 从其他集合(不是引用)填充子字段

java - MongoTemplate 聚合 - 按日期分组

meteor 铁路线 onBeforeAction

javascript - mediaelement.js setSrc 方法不起作用

javascript - jquery onchange() - 如何将变量放在引号中?

arrays - 尝试在 mongo shell 中填充数组

javascript - 使用 Meteor.js 构建博客

javascript - meteor Collection.insert() 不返回 Id