sql >> Database >  >> NoSQL >> MongoDB

Welke aggregatiecursormethoden worden ondersteund door Nodejs-stuurprogramma's?

Wat daadwerkelijk wordt geretourneerd door aggregaat met een cursor is een node transform stream-interface met een paar andere gemaksmethoden, met name:

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

Die u kunt verkrijgen door het cursorobject eenvoudigweg te dumpen met behulp van console.log . Die zouden voor zichzelf moeten spreken met de get() methode is equivalent aan .toArray() .

Aangezien dit een standaard streaming-interface is, zijn de methoden en event-handlers beschikbaar volgens deze interface, dus met een voorbeeld:

  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" );
    });

  });

De gebeurtenis "data" wordt geactiveerd bij elke iteratie van de cursor en de eigenschappen van het object laten zien of de stream voltooid is of nog steeds wordt herhaald, enzovoort.




  1. Python + MongoDB - Cursor-iteratie te traag

  2. Is er een manier om een ​​specifieke sleutel te lokaliseren op een specifieke redis-instantie in clustermodus?

  3. Hoe maak je een Bson-document met een Null-waarde met behulp van de officiële C#-driver?

  4. Lijst en serveer bestanden van GridFS met Flask