Veo un problema con la función de mapa que emite su _id como clave cuando desea hacer una consulta de rango en la información de fecha. Deberías guardar la información de la fecha en un campo separado. El _id tiene que ser una cadena y no podrá realizar correctamente la consulta startkey-endkey en él.
Algo así como:
{
"_id": "997b9f758899f102ab58570686001bc2",
"_rev": "1-f87d54608d36cd2e28add67e88e416a4",
"date": [2011, 6, 7, 10, 55],
"volt": 107,
"ampere": 23.5
}
A continuación, el documento de diseño se convertiría en algo como:
{
"_id": "_design/power",
"_rev": "1-7788287ab51c480c725498eba4f79ddb",
"language": "javascript",
"views": {
"watt": {
"map": "function(doc) {\n emit(doc.date, doc.volt * doc.ampere);\n}",
"reduce": "_sum"
}
}
}
Puede utilizar el nivel de grupo para controlar la forma en que la información viene basa en la clave de [ año, mes, día, hora, minuto]. El nivel 1 del grupo sería total por un año, 2 meses, etc. Además de eso, puede filtrarlo con la tecla de inicio y la tecla de finalización.
GET db/_design/power/_view/watt?group_level=2
deben darle la espalda algo similar a:
{"rows":[
{"key":[2011,4],"value":1988.5},
{"key":[2011,5],"value":1988.5},
{"key":[2011,6],"value":7778.0}
]}
Caída de la agrupación y filtrado con un rango de teclas también se puede obtener la información que desea, sino que va a tener un aspecto diferente.
GET db/_design/power/_view/watt?startkey=[2011,4]&endkey=[2011,6]
{"rows":[
{"key":null,"value":3977.0}
]}
integración de estas plantas a la vez para agrupar los valores antes de reducir y filtrar los meses que no desea.
GET db/_design/power/_view/watt?startkey=[2011,4]&endkey=[2011,6]&group_level=2
{"rows":[
{"key":[2011,4],"value":1988.5},
{"key":[2011,5],"value":1988.5}
]}
De todos modos, tratando de ser cuidadoso ... También me ayuda a recordar estas cosas.
CouchDB HTTP View API - Query Options
EDIT:
me di cuenta de que usted mencionó querer grupo por hora. Usted continuaría el nivel de agrupación hasta la parte de la hora de su clave.
GET db/_design/power/_view/watt?startkey=[2011,4]&endkey=[2011,6]&group_level=4
{"rows":[
{"key":[2011,4,9,11],"value":1988.5},
{"key":[2011,5,9,11],"value":1988.5}
]}
Me temo que mi base de datos de prueba no tiene información muy útil, pero espero exhibidas cómo startkey/endkey y group_level puede ser utilizado.
Incluya documentos de muestra y la fuente de función de mapa –