sql >> Base de Datos >  >> RDS >> Mysql

¿puede couchdb hacer bucles?

Creo que entiendo lo que estás preguntando. La respuesta es bastante sencilla con Map/Reduce.

Digamos que tiene los siguientes documentos de personas:

{
   "name": "Person A",
   "interests" [ "computers", "fishing", "sports" ]
}
{
   "name": "Person B",
   "interests" [ "computers", "gaming" ]
}
{
   "name": "Person C",
   "interests" [ "hiking", "sports" ]
}
{
   "name": "Person D",
   "interests" [ "gaming" ]
}

Probablemente desee emitir su clave como interés, con el valor como el nombre de la persona (o _id ).

function (doc) {
   for (var x = 0, len = doc.interests.length; x < len; x++) {
      emit(doc.interests[x], doc..name);
   }
}

Los resultados de su vista se verían así:

  • ordenadores => Persona A
  • ordenadores => Persona B
  • pesca => Persona A
  • juego => Persona B
  • juego => Persona D
  • senderismo => Persona C
  • deportes => Persona A
  • deportes => Persona C

Para obtener una lista de personas con computadoras como interés, simplemente puede enviar key="computers" como parte de la cadena de consulta.

Si desea agregar una función de reducción a su mapa, simplemente puede usar _count (acceso directo para usar una función de reducción compilada) y puede recuperar un recuento de todas las personas con un interés particular, incluso puede usarlo para limitar los intereses que consulta para construir sus relaciones.