Wie führen Sie zusammengesetzte Abfragen mit logischem OR in Cloud Firestore durch?

12

Von den Dokumenten :

  

Sie können auch mehrere where () -Methoden verketten, um spezifischere Abfragen (logisches UND) zu erstellen.

Wie kann ich eine OR Abfrage durchführen? Beispiel:

  1. Geben Sie mir alle Dokumente mit dem Feld status ist open OR upcoming
  2. Geben Sie mir alle Dokumente mit dem Feld status == open OR createdAt <= <somedatetime>
ProblemsOfSumit 08.10.2017, 14:12
quelle

3 Antworten

8

OR wird nicht unterstützt, da es für den Server schwierig ist, es zu skalieren (erfordert, dass der Status dedupliziert wird). Es gibt zwei Abfragen, eine für jede Bedingung und eine Deduplizierung für den Client.

    
Dan McGrath 08.10.2017, 16:18
quelle
0

Sie können zwei Observables mithilfe des Rxjs-Merge-Operators binden. Hier haben Sie ein Beispiel.

%Vor%

Dann können Sie die neuen Observable-Updates mit der obigen Methode abonnieren:

%Vor%

Ich hoffe, das kann Ihnen helfen, Grüße aus Chile !!

    
Fernando Gutiérrez 16.02.2018 18:26
quelle
0

schlagen vor, auch für den Status einen Wert zu geben.
ex.

%Vor%

Sie können nach ref.where('statusValue', '<=', 20) abfragen, dann werden sowohl 'a' als auch 'b' gefunden.

Dies kann Ihre Abfragekosten und -leistung speichern.

BTW, es ist nicht alles fix.

    
Weerayut Youngklai 07.04.2018 13:58
quelle