sql >> Databasteknik >  >> NoSQL >> MongoDB

Vilka aggregeringsmarkörmetoder stöds av Nodejs drivrutiner?

Det som faktiskt returneras från aggregat med en markör är ett gränssnitt för nodtransformeringsström med några andra bekvämlighetsmetoder, särskilt:

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

Vilket du kan få genom att helt enkelt dumpa markörobjektet med console.log . Dessa bör vara självförklarande med get() metod som motsvarar .toArray() .

Eftersom detta är ett standardströmningsgränssnitt är metoderna och händelsehanterarna tillgängliga enligt detta gränssnitt, så med ett exempel:

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

  });

"Data"-händelsen aktiveras med varje marköriteration och egenskaper på objektet kommer att visa om strömmen är komplett eller fortfarande itererar och så vidare.




  1. Subtrahera $summa från underdokument

  2. Argument som skickas in måste vara en sträng med 24 hexadecken - jag tror att det är det

  3. Spring Data MongoDB:BigInteger till ObjectId-konvertering

  4. Varför skapar mongoDB Node-drivrutinen oönskade anslutningar?