2017-01-19 2 views
0

Mein Mongodb ist auf dem Remote-Rechner installiert, Index aktiviert. Die Sammlung Dokument Gesamtzahl beträgt etwa . auf meinem lokalen Rechner, verwende ich Mungo find() für die Suche, kehrt schließlich Ergebnisse. Aber finden() wird über 70 Sekunden nehmen. Dann benutze ich mager(), die Zeit kostet etwa 40 Sekunden, ein wenig besser, aber immer noch zu lang.Mungo finden sehr langsam aber Robomongo sehr schnell

noch auf meinem lokalen Rechner, verwende ich robomongo Client auf diese entfernten mongodb, tun die gleiche Suche, nur 28ms

var UserSchema = new Schema({ 
 
    monitorName : {type: String}, 
 
    value : {type: Number}, 
 
    updateDate : {type: String} 
 
});

Meine Suchbedingung zu verbinden ist als dies:

Model.find().where('updateDate').gt('1/18/2017, 11:37:25 PM').lt('1/19/2017, 11:37:25 PM').lean().exec(function(err, docs){ ......

+1

Willkommen bei Stack Overflow, ich verstehe nicht, was ist Ihre Frage? Bitte nehmen Sie sich etwas Zeit, um der [Stack Overflow Tour] (http://stackoverflow.com/tour) zu folgen und lesen Sie [Wie stelle ich eine gute Frage?] (http://stackoverflow.com/help/how- zu stellen) Geben Sie auch den entsprechenden Code an, den Sie für Ihre Frage geschrieben haben (Sie können auch [Wie erstellt man ein minimales, vollständiges und verifizierbares Beispiel] (http://stackoverflow.com/help/mcve)) –

+0

haben einen Index für updateDate erstellt? –

+0

Ja, erstellt. Ich denke, robomongo client zeigt nur 50 Ergebnisse pro Seite. Kann es automatisch Paging verwenden? – user7440192

Antwort

0

Ich bin mir ziemlich sicher, dass Robomongo verwendet .limit(<n>) & .skip(<n>) (50 Einträge) standardmäßig.

So ist es nicht so viele Sammlungen abruft wie bei einem regulären Betrieb .find().

Es ist wahrscheinlich Fälle zu vermeiden, in denen der Benutzer versehentlich große Abfragen ausführen, die die Benutzeroberfläche sperren, und das Fenster unempfänglich zu machen.

+0

Wenn ja, werden die meisten Zeitkosten verwendet, um Dokumente aus dem Netzwerk zu übertragen? – user7440192

+0

Ja, es verwendet standardmäßig Paging, da es eine GUI-Anwendung ist, die die Benutzerfreundlichkeit mildert, indem verhindert wird, dass der Benutzer versehentlich große Abfragen ausführt, die die Benutzeroberfläche blockieren. –