Puede alguien explicarme por qué el siguiente no funciona:CouchDB Group y Key Range
Suponiendo que la estructura siguiente documento:
{
"_id": "520fb089a6cb538b1843cdf3cca39a15",
"_rev": "2-f96c27d19bf6cb10268d6d1c34799931",
"type": "nosql",
"location": "AZ",
"date": "2012/03/01 00:00:00",
"amount": 1500
}
y una función de mapa definido de este modo:
function(doc) {
var saleDate = new Date(doc.date);
emit([doc.location,saleDate.getFullYear(),saleDate.getMonth()+1],doc.amount);
}
Y usando la función integrada _sum
para el reductor.
Cuando se ejecuta este (con el grupo = true) se obtiene resultados como este:
{"rows":[
{"key":["AZ",2012,2],"value":224},
{"key":["AZ",2012,3],"value":1500},
{"key":["WA",2011,12],"value":1965},
{"key":["WA",2012,1],"value":358}
]}
Ahora bien, si cambia la consulta a algo como esto:
http://127.0.0.1:5984/default/_design/nosql/_view/nosql_test?group_level=2
Se obtienen resultados como este :
{"rows":[
{"key":["AZ",2012],"value":1724},
{"key":["WA",2011],"value":1965},
{"key":["WA",2012],"value":358}
]}
Así que con eso en mente si quería saber todas las ventas en 2011 para "WA" podría no exe lindo algo como esto:
http://127.0.0.1:5984/default/_design/nosql/_view/nosql_test?group_level=2&key=["WA",2011]
Este ejemplo ha sido tomado de los videos útiles en cintas NoSQL.
http://nosqltapes.com/video/understanding-mapreduce-with-mike-miller
Sí, eso funcionó y tiene más sentido ahora. Gracias por el enlace a la guía ViewCollation también. – eggsy84
Supongo que se hizo a partir de los resultados de la etapa Reducir, pero ahora entiendo que se hace a partir de los resultados de la función Mapa. Gracias por la ayuda :) – eggsy84