2016-07-30 5 views
0

Betrachten wir zwei Arten von Dokumenten Company und Person:Join in Couchbase Lite, wie ist es möglich?

Company hat 2 Felder:

  • name vom Typ String
  • employees vom Typ List of Person

Person 2 Felder hat:

  • name vom Typ String
  • city vom Typ String

Wie kann ich eine Abfrage, wo ich alle Firmen finden, die mindestens N Mitarbeiter in einer bestimmten Stadt haben?

EDIT: Mit anderen Worten, wie ist es möglich, so etwas wie this mit CouchBase Lite zu tun.

Antwort

1

Ich denke, es gibt mehrere Möglichkeiten, dies zu nähern.

Ein Vorschlag besteht darin, eine Ansicht zu erstellen, die bei Angabe eines Unternehmensdokuments über die Kartenstufe ein Schlüssel/Wert-Paar ausgibt. Der Schlüssel könnte eine Karte sein, die den Firmennamen und die Stadt enthält, und der Wert könnte alles sein (z. B. der Name des Angestellten). Fügen Sie dann eine Reduzierungsfunktion hinzu, die alle Indexeinträge (das ist der erste Teil) mit demselben Schlüssel summiert.

Das Ergebnis der Reduzierung der Bühnenausgabe für die Ansicht ist die Gesamtzahl der von Firma + Stadt eingegebenen Mitarbeiter. Sie können dann Abfragen ausführen, um Ihr Ergebnis zu erhalten.

Ansichten und Abfragen sind wirklich mächtig, aber können einige Gedanken machen. Konzentrieren Sie sich darauf, die benötigten Informationen aus der Ansicht herauszuholen, damit Sie flexibel abfragen können. Weitere Informationen finden Sie in der Dokumentation View und Query.

+0

Danke, für jetzt bin ich zu Realm gewechselt (weil Join dort einfacher ist), wenn es zu schmerzhaft scheint, dann könnte ich zurück zu CouchBase wechseln. – jhegedus

+0

@jhegedus Couchbase Mobile V2.0 wird N1QL (Obermenge von SQL) haben, was dies sehr vereinfachen wird. Couchbase veröffentlicht Previews und sucht nach Feedback. Schau, ob du eine Chance hast. Vielen Dank. – Hod

Verwandte Themen