sql >> Database >  >> RDS >> Mysql

kan couchdb loops doen

Ik denk dat ik begrijp wat je vraagt. Het antwoord is vrij eenvoudig met Map/Reduce.

Stel dat u de volgende personendocumenten heeft:

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

U wilt waarschijnlijk uw sleutel als de rente verzenden, met de waarde als de naam van de persoon (of _id ).

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

Uw weergaveresultaten zien er als volgt uit:

  • computers => Persoon A
  • computers => Persoon B
  • vissen => Persoon A
  • gaming => Persoon B
  • gaming => Persoon D
  • wandelen => Persoon C
  • sport => Persoon A
  • sport => Persoon C

Om een ​​lijst te krijgen van mensen met computers als interesse, stuur je eenvoudig key="computers" als onderdeel van de queryreeks.

Als u een reductiefunctie aan uw kaart wilt toevoegen, kunt u eenvoudig _count . gebruiken (snelkoppeling om een ​​gecompileerde verkleinfunctie te gebruiken) en u kunt een telling van alle mensen met een bepaalde interesse ophalen, u kunt die zelfs gebruiken om te beperken welke interesses u opvraagt ​​om uw relaties op te bouwen.



  1. Tenant-ID doorgeven via sql-serververbinding

  2. Hoe alle privileges op weergaven toe te kennen aan een willekeurige gebruiker?

  3. @@ROWCOUNT – Verkrijg het aantal rijen dat wordt beïnvloed door de laatste instructie in SQL Server

  4. INNODB inschakelen in mysql