MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB:Warum sollten wir den Cursor schließen, nachdem er verwendet wurde?

Das Schließen des Cursors ist nur dann wirklich erforderlich, wenn Sie die Ergebnisse nicht "ausschöpfen". Oder mit anderen Worten, iterieren Sie über alle möglichen Ergebnisse, die vom Cursor zurückgegeben werden.

Einen „Cursor“ offen zu lassen, ist wie eine offene Verbindung zu lassen, die nie wiederverwendet wird. Diese Dinge sind nicht kostenlos. Tatsächlich betragen die Standardverbindungskosten 1 MB (ca.). Wenn Sie also viele "teilweise iterierte" Cursor herumhängen lassen, gibt es einen allgemeinen Overhead in Bezug auf eine aktive Verbindung und deren Speicherverbrauch.

Wenn Sie tatsächlich immer "alle" Ergebnisse iterieren (und dazu gehört auch ein "Limit", das ein "Cursor-Modifikator" ist), dann schließt sich der Cursor und alles ist in Ordnung.

Die allgemeine Verwendung wird sein, dass Sie den Cursor tatsächlich erschöpfen/erschöpfen, indem Sie alle Ergebnisse durchgehen. Daher besteht keine explizite Notwendigkeit zu zerstören.