我有这样的数据
州城市日
亚利桑那州钱德勒周一
亚利桑那州梅萨星期三
亚利桑那州钱德勒周一
亚利桑那州梅萨周六
华盛顿温哥华星期五
华盛顿温哥华星期五
华盛顿斯波坎星期一华盛顿温哥华星期二
华盛顿斯波坎星期一我想通过州和城市获得最喜欢的一天
例如华盛顿 - 温哥华最喜欢的一天是星期五,亚利桑那 - 钱德勒的星期一是
答案 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 ;;只有所有独特的组合,您必须遍历结果集才能找到总数最大的组合。