Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Czy couchdb może robić pętle?

Myślę, że rozumiem, o co prosisz. Odpowiedź jest całkiem prosta w przypadku Map/Reduce.

Załóżmy, że masz następujące dokumenty osób:

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

Prawdopodobnie chciałbyś wyemitować swój klucz jako zainteresowanie, z wartością jako nazwą osoby (lub _id ).

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

Twoje wyniki wyświetlania będą wyglądać tak:

  • komputery => osoba A
  • komputery => osoba B
  • wędkarstwo => Osoba A
  • gry => Osoba B
  • gry => Osoba D
  • wędrówki => Osoba C
  • sport => Osoba A
  • sport => Osoba C

Aby uzyskać listę osób, których interesuje komputer, możesz po prostu wysłać key="computers" jako część ciągu zapytania.

Jeśli chcesz dodać funkcję zmniejszania do swojej mapy, możesz po prostu użyć _count (skrót do użycia skompilowanej funkcji zmniejszania) i możesz pobrać liczbę wszystkich osób o określonych zainteresowaniach, możesz nawet użyć tego do ograniczenia zapytań o zainteresowania w celu budowania relacji.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak usunąć duplikaty w tabeli MySQL?

  2. Przykłady relacji wiele-do-wielu

  3. Usuń tagi HTML z rekordu

  4. Wydajność zapytań w dwóch bazach mysql na tym samym serwerze?

  5. Sortowanie kolumny ciągów zawierającej liczby w SQL?