Mysql
 sql >> база данни >  >> RDS >> Mysql

може couchdb да прави цикли

Мисля, че разбирам какво питаш. Отговорът е доста ясен с Map/Reduce.

Да приемем, че имате следните документи за хора:

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

Вероятно бихте искали да издадете своя ключ като лихва, със стойността като име на лицето (или _id ).

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

Резултатите от прегледа ви ще изглеждат така:

  • компютри => Лице А
  • компютри => Лице Б
  • риболов => Лице А
  • игри => Лице Б
  • gaming => Лице D
  • пешеходен туризъм => лице C
  • спорт => Лице А
  • спорт => Лице В

За да получите списък с хора с компютри като интерес, можете просто да изпратите key="computers" като част от низа на заявката.

Ако искате да добавите функция за намаляване на вашата карта, можете просто да използвате _count (пряк път за използване на компилирана функция за намаляване) и можете да извлечете броя на всички хора с конкретен интерес, можете дори да го използвате, за да ограничите интересите, които търсите, за да изградите взаимоотношенията си.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP mysql формат за вмъкване на дата

  2. Намерете най-добрите възможни начини за 2-ра най-висока заплата

  3. MySQL -- Актуализирайте, ако съществува, вмъкнете с два ключа

  4. Ограничаването на заявка до един запис подобрява ли производителността

  5. Golang, mysql:Грешка 1040:Твърде много връзки