Nach MongoDB Hand der folgende Code erschöpft das Array und speichert die der von der Abfrage zurück docs RAM:Cursor.toArray() Umsetzung
var myCurse = db.coll.find();
var docs = myCurse.toArray()
Wenn ich in dem Befehl ein:
myCurse.forEach(printjson);
Nach den ersten beiden Befehlen wird nichts zurückgegeben. Also im Grunde ist der Cursor erschöpft. Alles sieht gut hier aus.
Jetzt tun, wenn die folgende Liste:
var myCurse = db.coll.find();
myCurse.toArray()[1];
und dann:
myCurse.toArray()[2];
ich noch Ergebnisse.
Meine Fragen sind:
- tut
myCurse.toArray()[i];
woi
ein Index ist, unterhalb eines Arrays implementieren, so dassmyCurse.toArray()[i];
mehrfach verwendet werden können. - Wie lange werden die Dokumente im RAM gespeichert?
- Was passiert, wenn die Größe zurückgegebener Dokumente die RAM-Größe überschreitet?
Mit MongoDB 3.2.8