DAM - DAW - MP 0484 Bases de Dades
Ús de cursors
El mètode db.collection.find() retorna un cursor. Per accedir als documents, cal iterar aquest cursor.
Tot i això, en 'mongosh', si el cursor retornat no s'assigna a una variable amb la paraula clau var, el cursor s'itera automàticament fins a 20 vegades, per imprimir els primers 20 documents. Posteriorment, escrivint la paaula it, va mostrant la resta de 20 en 20.
MongoDB Shell, mongosh, és un entorn REPL (Read-Eval-Print Loop) de JavaScript i Node.js 16.x completament funcional per a interactuar amb implementacions de MongoDB.
REPL també anomenat nivell superior interactiu o shell de llenguatge, és un entorn de programació interactiu simple que pren les entrades d'un únic usuari, les executa i retornar el resultat a l'usuari.
Exemple
Accedirem a les dades dels estudiants a tavés d'un cursor.
Farem una cerca, guardant els resultats al cursor. Després mostrarem, un a un, els 2 resultados obtinguts, iterant el cursor.
use crud
var myCursor = db.estudiants.find( { "edat" : { $gt: 21 }} );
while (myCursor.hasNext()) {
printjson(myCursor.next());
}
o més senzill
use crud
var myCursor = db.estudiants.find( { "edat" : { $gt: 21 }} );
myCursor.forEach(printjson);
o accedint document a document
use crud
var myCursor = db.estudiants.find( { "edat" : { $gt: 21 }} );
while (myCursor.hasNext()) {
printjson(myCursor.next());
o guardant el resultat en un array i accedint després
use crud
var myCursor = db.estudiants.find( { "edat" : { $gt: 21 }} );
var tots = myCursor.toArray()
printjson(tots[0])
printjson(tots[1])
printjson(tots[2])
printjson(tots[1])
Com que el curs no està pensat per treballar Javascript, ho deixem aquí, però que serveixi com a exemple d'accés, amb Javascript, des de la Shell de MongoDB.