Suchfehler beim Verwenden der Datentabelle mit riesigen Daten in NodeJS

8

Ich habe ungefähr 5.00.000 Datensätze in meiner Datenbank. Ich verwende DataTables, um ein Admin-Panel zum Verwalten der Datensätze zu erstellen. Ich habe Node.js mit MongoDB unterstützt.

Ich habe diese Bibliothek benutzt - Ссылка

Bisher habe ich beim Laden der Seite die Ergebnisse geladen, die im unteren Bild gezeigt werden.

Immer wenn ich etwas in das Suchfeld eintippe, bekomme ich 500 Fehler, wie im Screenshot gezeigt.

Was könnte das Problem hier sein?

Ist DataTable eine gute Option, um ein Grid mit einer großen Datenmenge anzuzeigen oder gibt es eine bessere Option, wenn man die Kombination Node.js, Express und MongoDB in Betracht zieht?

Hier ist mein serverseitiger Code.

%Vor%

Ich habe eine Tabelle in MongoDB namens Benutzer mit 3 Spalten

1) Name

2) E-Mail

3) Passwort

%Vor%     
Anirudh 06.09.2017, 12:09
quelle

2 Antworten

4

Ich würde wahrscheinlich einen Index für die Daten erstellen und diesen Index durchsuchen, anstatt die Daten selbst zu durchsuchen. Wenn Sie jedoch einen Volltextindex erstellen, müssen Sie eine Kombination aus allen Ihren Sammlungen in Ihrer Sammlung haben und mongo erlaubt nur 1 Volltextindex pro Sammlung .

Was Alternativen betrifft, könntest du die Elastic Search von AWS (die gut mit MongoDB funktioniert) oder Sphinx Index (basierend auf PostreSQL) sehen

Bearbeiten: Ich weiß, dass diese Antwort die Frage nicht im Geringsten beantwortet Ich befürchte, dass der Fehler 500 kein Speicherproblem in der Anwendung ist, sondern eher in der DB (Mongo ist nicht wie SQL, also entwerfe deine Anwendungen nicht wie in SQL).

Einige Lesestoffe, wenn Sie die db-Struktur ändern möchten

Ссылка
Ссылка

    
DarkMukke 06.09.2017 15:30
quelle
1

Der Schlüssel hier ist herauszufinden, was genau auf der DB oder Server-Seite Schicht schief gelaufen ist. Bei der Fehlermeldung, die Sie melden, handelt es sich um eine allgemeine Nachricht aus der Bibliothek für Datenquellen, die Sie auf die folgende Dokumentation verweist: Ссылка

Die oben verlinkte Dokumentation besagt, dass dieser Fehler immer dann auftritt, wenn vom Server eine Antwort von 200 zurückgegeben wird. In diesem Fall werfen Sie explizit einen Fehler von 500 in den Fehlerhandler / Callback des Aufrufs der Datatables-Abfrage, aber das gibt Ihnen / uns nicht die Informationen, die wir brauchen!

Der nächste Schritt besteht darin, den Antworttext auf der Registerkarte "Netzwerk" in der Konsole Ihres Browsers anzuzeigen, da Sie den Fehler als json serialisieren und zusammen mit Ihrer 500-Antwort senden oder an console.log out the err in den Fehlerhandler / Callback in Ihrem Node-Code. Dadurch werden Sie verstehen, was tatsächlich schief läuft, und mit diesen Informationen können wir eine Lösung genauer vorschreiben. Veröffentlichen Sie ein Update mit allem, was Sie sich ausloggen bitte!

    
rdgd 14.09.2017 22:28
quelle