从数据集中获取最喜欢的一天

时间:2016-06-05 09:42:18

标签: cloudant

我有这样的数据

州城市日

亚利桑那州钱德勒周一

亚利桑那州梅萨星期三

亚利桑那州钱德勒周一

亚利桑那州梅萨周六

华盛顿温哥华星期五

华盛顿温哥华星期五

华盛顿斯波坎星期一

华盛顿温哥华星期二

华盛顿斯波坎星期一

我想通过州和城市获得最喜欢的一天

例如华盛顿 - 温哥华最喜欢的一天是星期五,亚利桑那 - 钱德勒的星期一是

2 个答案:

答案 0 :(得分:1)

您应该考虑使用视图。您可以创建地图函数,以[state, city, day]的方式发出密钥,其值为1,然后您可以使用_count缩减来查看每个密钥被提及的次数。从那以后,您将能够确定每个州/城市最喜欢的一天。您可以在cloudant documentation中了解有关观看次数的更多信息。

答案 1 :(得分:1)

所以在JSON中,文档看起来像这样:

{ "state": "Arizona", "city": "Chandler", "day": "Monday" }

按州和城市查找最喜欢的日子"我们可以创建一个索引,其中键包含以下三个部分:

function(doc) { emit([doc.state,doc.city,doc.day], null); }

并使用内置的_count缩减器。

这将给出这样的键:

["Arizona","Chandler","Monday"]

然后通过查询视图来收集计数:

/分贝/ _design / mydesigndoc / _view / MyView的?group_level = 3

将为州/市/日的每个不同组合提供计数。

它不能仅仅返回"最喜欢的&#34 ;;只有所有独特的组合,您必须遍历结果集才能找到总数最大的组合。