2017-11-12 2 views

Antwort

7

Firestor schreiben. Entsprechend der documentation:

Die where() -Methode benötigt drei Parameter: ein Feld zum Filtern, einen Vergleichsvorgang und einen Wert. Der Vergleich kann <, < =, ==,> oder> = sein.

Ungleichheitsoperationen skalieren nicht wie andere Operationen, die eine index verwenden. Firestore-Indizes eignen sich für Bereichsabfragen. Bei dieser Art von Index müsste das Backend für eine Ungleichheitsabfrage immer noch jedes Dokument in der Sammlung prüfen, um Ergebnisse zu erzielen, und das ist extrem schlecht für die Leistung, wenn die Anzahl der Dokumente zunimmt.

Wenn Sie Ihre Ergebnisse filtern müssen, um bestimmte Elemente zu entfernen, können Sie dies immer noch lokal tun.

Sie können auch mehrere Abfragen verwenden, um einen eindeutigen Wert auszuschließen. Etwas wie das, wenn Sie alles außer 12 wünschen. Abfrage für Wert < 12, dann Abfrage für Wert> 12, dann fusionieren Sie die Ergebnisse im Client.

+2

vor Ort, aber wie? Wenn Sammlung "Artikel" hat 10.000 Artikel von mir readed bedeutet, dass ich diese Sammlung mit Paginierung verrückt oft fragen muss, bevor ich unreadded Artikel erreichen werde. – android51130

+1


zum Beispiel, wie bekomme ich nur Artikel, die ich nicht schon gelesen habe?
Speichern readed_article_ids in meinem Benutzer Firestore Dokument wird mein Benutzerdokument zu vergrößern und jede Firestore Doc hat Limit in 1mb - einige Tage readed_article_ids Firestore-Array in meinem Benutzerdokument wird diesen Schwellenwert überschreiten.
So verwirrt: (( – android51130

+0

Wenn Sie eine genauere Frage über Datenmodellierung haben, klingt das wie eine andere Frage. –

Verwandte Themen