Erfahren Sie, wie Sie mit Sequelize effizient verbundene Datensätze zählen können, besonders nützlich zur Aggregation von Dokumentenmengen in Ihren Routen.
---
Dieses Video basiert auf der Frage https://stackoverflow.com/q/62310209/ gestellt von dem Nutzer 'Gustavo Bordin' ( https://stackoverflow.com/u/12776698/ ) sowie auf der Antwort https://stackoverflow.com/a/62311250/ bereitgestellt von dem Nutzer 'Anatoly' ( https://stackoverflow.com/u/1376618/ ) auf der Website 'Stack Overflow'. Vielen Dank an diese großartigen Nutzer und die Stackexchange-Community für ihre Beiträge.
Besuchen Sie diese Links, um den Originalinhalt und weitere Details zu sehen, z. B. alternative Lösungen, aktuelle Entwicklungen zum Thema, Kommentare, Versionsverlauf usw. Der ursprüngliche Titel der Frage lautete beispielsweise: Sequelize - Select on associated table
Außerdem steht der Inhalt (außer Musik) unter der Lizenz CC BY-SA https://meta.stackexchange.com/help/l...
Der ursprüngliche Fragenbeitrag steht unter der Lizenz 'CC BY-SA 4.0' ( https://creativecommons.org/licenses/... ), und der ursprüngliche Antwortbeitrag steht unter der Lizenz 'CC BY-SA 4.0' ( https://creativecommons.org/licenses/... ).
Falls Ihnen irgendetwas auffällt oder Unstimmigkeiten bestehen, schreiben Sie mir bitte an vlogize [AT] gmail [DOT] com.
---
Wie man Sequelize verwendet, um Dokumentenzähler aus assoziierten Tabellen auszuwählen
Beim Arbeiten mit Datenbanken, insbesondere in Node.js-Anwendungen unter Verwendung des Sequelize ORM, trifft man häufig auf Szenarien, in denen verwandte Datensätze aus assoziierten Tabellen gezählt werden müssen. Eine solche Situation entsteht, wenn Sie Gruppeninformationen zusammen mit der Anzahl der zugehörigen Dokumente auflisten möchten. In diesem Blogbeitrag erkunden wir eine praktische Lösung für dieses Problem und führen Sie Schritt für Schritt durch den Prozess.
Das Problem: Dokumente in Sequelize zählen
In Ihrer Anwendung richten Sie eine Route ein, die Informationen zu einer Gruppe zurückgibt, inklusive mehrerer Attribute: der Gruppen-ID, einem zugewiesenen Benutzer und vor allem der Anzahl der Dokumente, die dieser Gruppe zugeordnet sind. Sie kennen vielleicht den SQL-Befehl SELECT COUNT, um dieses Ergebnis zu erzielen, aber wie lässt sich diese Funktionalität in Sequelize umsetzen?
Hier eine kurze Erinnerung an die Herausforderung, wie sie im Code dargestellt wird:
[[Siehe Video, um diesen Text oder Codeausschnitt anzuzeigen]]
Die Lösung: Verwendung von COUNT mit Sequelize
Um die Anzahl der Dokumente zu zählen, die mit jeder Gruppe verknüpft sind, können Sie die leistungsstarke Aggregationsfunktionalität von Sequelize nutzen. Konkret müssen Sie die "include"-Konfiguration für das Document-Modell anpassen. So geht’s Schritt für Schritt:
Schritt 1: Aktualisieren des include-Arrays
Im findAll-Aufruf müssen Sie beim Einbinden des Document-Modells angeben, dass Sie die Dokumentanzahl zählen möchten. Dies geschieht mithilfe von Sequelizes fn-Methode zur Zählung von Datensätzen. Nachfolgend der angepasste Codeausschnitt:
[[Siehe Video, um diesen Text oder Codeausschnitt anzuzeigen]]
Schritt 2: Ergebnisse mappen
Mit dieser Änderung können Sie erfolgreich die Dokumente zählen. Das Mapping der result-Variable sieht dann wie folgt aus:
[[Siehe Video, um diesen Text oder Codeausschnitt anzuzeigen]]
Schritt 3: Umgang mit der Konsolenausgabe
Wenn Sie groups loggen, sollten Sie jetzt docAmount in jedem zurückgegebenen Gruppeneintrag sehen, was Ihnen bestätigt, dass die Zählung korrekt erfolgt.
Fazit
Die Verwendung von Sequelize zum Zählen assoziierter Datensätze kann Ihre Datenbankabfragen deutlich vereinfachen. Indem Sie Aggregationsfunktionen wie COUNT direkt in Ihre include-Konfigurationen einbetten, erhalten Sie umfangreiche Datensätze, die sowohl Primär- als auch verwandte Daten effizient erfassen.
Mit den oben beschriebenen Schritten sind Sie nun in der Lage, Ihre Sequelize-Abfragen so zu modifizieren, dass Dokumentenzähler zusammen mit anderen Attributen der Gruppendaten ausgegeben werden. Dieser Ansatz verbessert nicht nur Ihre Routen, sondern liefert auch eine informativere API-Ausgabe für Ihre Nutzer.
Nutzen Sie diese Technik gern in Ihrer Node.js-Anwendung und erleben Sie, wie mächtig Sequelize im Management von Beziehungen und Datenaggregation sein kann.
Информация по комментариям в разработке