sql >> Databáze >  >> RDS >> Mysql

může couchdb dělat smyčky

Myslím, že rozumím tomu, na co se ptáte. Odpověď je docela přímočará pomocí Map/Reduce.

Řekněme, že máte následující dokumenty osob:

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

Pravděpodobně budete chtít vydat svůj klíč jako úrok s hodnotou jako jméno osoby (nebo _id ).

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

Vaše výsledky zobrazení budou vypadat takto:

  • počítače => Osoba A
  • počítače => Osoba B
  • rybaření => Osoba A
  • hraní => Osoba B
  • hraní => Osoba D
  • turistika => osoba C
  • sport => Osoba A
  • sport => Osoba C

Chcete-li získat seznam lidí, kteří mají zájem o počítače, stačí odeslat key="computers" jako součást řetězce dotazu.

Pokud chcete do mapy přidat funkci zmenšení, můžete jednoduše použít _count (zkratka pro použití zkompilované funkce snížení) a můžete získat počet všech lidí s konkrétním zájmem, můžete to dokonce použít k omezení zájmů, na které se ptáte, abyste budovali své vztahy.



  1. Časový limit pro metodu OracleDataReader.Read

  2. Jak se připojit k databázi SQL Server z JavaScriptu v prohlížeči?

  3. 2 způsoby, jak vrátit řádky, které obsahují pouze alfanumerické znaky v Oracle

  4. Alternativa funkce lead lag v SQL Server 2008