sql >> Databáze >  >> NoSQL >> MongoDB

Jaké metody agregačního kurzoru jsou podporovány ovladači Nodejs?

Co se ve skutečnosti vrací z agregace s kurzorem, je rozhraní streamu transformace uzlu s několika dalšími pohodlnými metodami, zejména:

explain: [Function],
get: [Function],
getOne: [Function],
each: [Function],
next: [Function],

Který můžete získat jednoduše vyprázdněním objektu kurzoru pomocí console.log . Ty by měly být samozřejmé pomocí get() metoda je ekvivalentní .toArray() .

Protože se jedná o standardní streamovací rozhraní, metody a obslužné rutiny událostí jsou dostupné podle tohoto rozhraní, takže s příkladem:

  var MongoClient = require('mongodb').MongoClient;


  MongoClient.connect("mongodb://localhost/test", function(err,db) {

    var items = [];
    var counter = 0;

    var cursor = db.collection('tags').aggregate(
      [
        { "$project": {
          "t1": 1,
          "t2": 1
        }}
      ],
      { "cursor": { "batchSize": 25 } }
    );

    console.log( cursor );

    cursor.on('data', function(data) {
      console.log( this );  // dump the current state info
      items.push( data );
      counter++;
    });

    cursor.on('end', function() {
      console.log( "Iterated " + counter + " times" );
    });

  });

Událost "data" se spouští při každé iteraci kurzoru a vlastnosti objektu ukážou, zda je datový proud dokončen, nebo se stále iteruje a tak dále.




  1. MongoDB Compass Filtr výraz na Go bson.M výraz

  2. Připojení k neexistujícímu serveru mongodb nevyvolá výjimku

  3. Jaký je C# ekvivalent push a root pro MongoDB?

  4. Použití nativních slibů ES6 s MongoDB