MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Какви методи на курсора за агрегиране се поддържат от драйверите на Nodejs?

Това, което всъщност се връща от aggregate с курсор, е интерфейс на поток за преобразуване на възел с няколко други удобни метода, по-специално:

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

Което можете да получите, като просто изхвърлите обекта на курсора с помощта на console.log . Те трябва да са ясни сами с get() метод е еквивалентен на .toArray() .

Тъй като това е стандартен интерфейс за поточно предаване, методите и манипулаторите на събития са налични според този интерфейс, така че с пример:

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

  });

Събитието „данни“ се задейства с всяка итерация на курсора и свойствата на обекта ще показват дали потокът е завършен или все още се повтаря и т.н.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. как да търсите в колекция на mongodb за речникови ключове, вложени в масив

  2. Четете данни от MongoDB (gridfs) чрез Matlab и Java драйвер

  3. Общ размер на хранилището на MongoDB

  4. Какво означава Ориентиран към документ срещу Ключ-стойност, когато говорим за MongoDB срещу Cassandra?

  5. mongoDB:Показване на MinuteBucket в стойността Time като крайно време за интервала