我在couchdb中有以下架构的30m记录。
{ countryIso: 'TR'
, region: '68'
, city: 'Ankara'
, lat: '39.927200317383'
, lon: '32.864398956299'
, action: 'install'
, itime: 1288523291000 // That is unix timestamp
, fileId: 33221
, api_level: '3'
, display_size: '320x480'
, model: 'Galaxy'
}
这些记录表示服务中文件的下载。我想做的是提供这些事件的统计数据。
一些示例查询:
理想情况下(如果可能)我们还应该回答更复杂的查询,例如:
我制作了以下地图功能
function (doc) {
emit([doc.fileId,
Math.floor(doc.itime/60/60/24),
doc.countryIso, doc.display_size,
doc.api_level], 1)
}
和_sum
作为reduce函数。
现在我可以做到这一点
?group_level=2&startkey=[247]&endkey=[247,{}]
{"rows":[
{"key":[247,14913505],"value":4},
{"key":[247,14913528],"value":4},
{"key":[247,14913563],"value":4}
]}
例如,每天获取特定fileId的下载。
或者
?group_level=3&startkey=[247]&endkey=[247,{}]
{"rows":[
{"key":[247,14913505,"GB"],"value":4},
{"key":[247,14913528,"AE"],"value":4},
{"key":[247,14913563,"TR"],"value":4}
]}
获取每个国家/地区每天特定fileId的下载量。
但我似乎无法以一种将返回此
的方式查询我的观点{"rows":[
{"key":[247,14913505,"320x480"],"value":4},
{"key":[247,14913528,"320x480"],"value":4},
{"key":[247,14913563,"320x533"],"value":4}
]}
我是否需要为我需要的每个查询(图表)创建单独的视图,或者您认为可以创建一个能够回答所有这些查询的复杂视图?
答案 0 :(得分:2)
没有办法像这样切入你的键,你只有词法顺序可以使用。因此,请单独查看。