2016-03-30 5 views
0

Lassen Sie uns sagen, ich habe ein Modell Parent, das zu vielen Kindern gehört. Ich möchte einige übergeordnete Objekte abfragen und sie so sortieren, dass Instanzen von übergeordneten Objekten mit den meisten untergeordneten Objekten zuerst angezeigt werden.Sequelize Sortierung Abfrage nach Anzahl der Kinder in einer Eins-zu-viele-Beziehung

Ist es auch möglich, andere Bedingungen an die Kinder anzuhängen, die gezählt werden? Zum Beispiel sortieren Eltern nach der Anzahl der weiblichen Kinder unter dem Alter oder 3.

Was ist ein effizienter Weg, dies zu erreichen?

Antwort

1

Sie können Kinderzahl Vorberechnungsfeld zum Eltern hinzufügen, so dass Sie nie zu Kinderobjekt gehen müssen und dies wird sehr schnell zu quartieren, auch wenn Sie ein neues Kind hinzufügen/löschen Kind behalten, um zu erhöhen oder zu verringern der Wert im Elternteil.

gleichen in der zweiten Frage Schlepptau Feld hinzufügen in Mutter male_child_count & female_child_count, wird das Leben mehr einfacher sein :-)

+0

ich um diese Idee zu treten hatte. Ist das eine gemeinsame Lösung? Wo würdest du diese Berechnung hinzufügen? Würden afterCreate und afterDelete Hooks am Child-Objekt angebracht sein? – Erik

+0

ja es ist eine allgemeine Idee in der Optimierung von Rdbms, wenn die Geschwindigkeit erforderlich ist, nicht die Größe –

+0

Perfect. Das ist beruhigend. Was ist das Vorberechnungsfeld, das in Ihrer Antwort erwähnt wurde? Ist das das Gleiche wie ein beforeSave-Hook am übergeordneten Objekt? – Erik

Verwandte Themen