Tabellenstruktur:
Collection
name (String)
Image
collection (Pointer<Collection>)
url (String)
position (Number)
Image
class hat die Spalte collection
, die ein Zeiger auf die Klasse Collection
ist.
position
wird verwendet, um Images
in Collection
zu sortieren.
Nehmen wir an, ich habe ~ 3000 Bilder und 3 Sammlungen.
Was wäre der beste Weg, um eine Abfrage zu erstellen, die ein Array mit allen Sammlungen zurückgibt, die mindestens ein assoziiertes Image
haben und nur die ersten 5 Bilder anzeigen jeder Sammlung, sortiert nach position
Zugehörige Bilder für jede Sammlung müssten in die Antwort einbezogen werden und könnten vage wie folgt aussehen:
%Vor% Alles, was ich mir im Moment vorstellen kann, sind zwei Abfragen, eine für alle Collections
und eine andere für alle Images
im Voraus und dann filtern, was ziemlich rückwärts wirkt, gepaart mit der Tatsache, dass Parse beschränkt ist um maximal 1000 Sätze zu erhalten. Muss ich meine Tabellenstruktur überdenken?
Sie können dies in einem einzigen Aufruf aufgrund Ihrer Einschränkungen tun.
Wenn Sie eine kleine Anzahl von Collection
-Objekten haben und eine relative Position verwenden (jede Collection
hat ein Bild mit position
= 1, 2 usw.), müssen Sie das Problem nicht überdenken . Diese Einschränkungen bedeuten, dass es relativ wenige Elemente gibt, bei denen "Position" & lt; 6 (oder 5, wenn 0 deine erste Indexposition ist).
Rufen Sie einfach die Klasse Image
an und beschränken Sie sie auf Objekte, deren Position kleiner oder gleich 5 ist. Verwenden Sie .include()
, um das Objekt Collection
zurückzugeben, das an jedes Image
-Objekt angehängt ist die Rückkehr. Sortieren Sie dann die Objekte Image
lokal in dem Format, das Ihnen angezeigt wird.
Denken Sie daran, dass Parse die Anzahl der Objekte begrenzt, die auf 100 zurückgegeben werden können, und Sie können diese auf bis zu 1000 erhöhen. Wenn Sie .include()
für Collection
für jedes Image
angeben, bedeutet dies, dass jedes zurückgegebene% co_de zurückgegeben wird % zählt für 2 Objekte, sodass Sie bis zu 500 Image
-Objekte zurückgeben können. Klingt so, als ob das weit über Ihren Erwartungen liegt.
Voilá - ein Anruf, alle deine Objekte.
%Vor%UPDATE Es ist auch erwähnenswert, dass dieser Ansatz sowohl für eine kleine Anzahl von Sammlungen als auch im Maßstab (1.000 oder 10.000 Sammlungen)
einen Ansatz mit "verschachtelten Abfragen" übertrifftTags und Links javascript parse.com