ReadStream()

Constructor

ReadStream

class ReadStream()
Arguments:
  • autoclose (boolean) – automatically close file when the stream reaches the end.
  • cursor (gridstore) – a cursor object that the stream wraps.
Returns:

readstream

Returns a stream interface for the file.

Events
  • data {function(item) {}} the data event triggers when a document is ready.
  • end {function() {}} the end event triggers when there is no more documents available.
  • close {function() {}} the close event triggers when the stream is closed.
  • error {function(err) {}} the error event triggers if an error happens.

pause

Pauses this stream, then no farther events will be fired.

pause()

Examples

A simple example showing the use of the readstream pause function.

var Db = require('mongodb').Db,
    MongoClient = require('mongodb').MongoClient,
    Server = require('mongodb').Server,
    ReplSetServers = require('mongodb').ReplSetServers,
    ObjectID = require('mongodb').ObjectID,
    Binary = require('mongodb').Binary,
    GridStore = require('mongodb').GridStore,
    Grid = require('mongodb').Grid,
    Code = require('mongodb').Code,
    BSON = require('mongodb').pure().BSON,
    assert = require('assert');

var db = new Db('test', new Server('locahost', 27017));
// Establish connection to db
db.open(function(err, db) {
  // File id
  var fileId = new ObjectID();
  // Create a file
  var file = new GridStore(db, fileId, "w", {chunk_size:5});
  file.open(function(err, file) {
    // Write some content and flush to disk
    file.write('Hello world', function(err, file) {
      file.close(function(err, result) {

        // Let's create a read file
        file = new GridStore(db, fileId, "r");
        // Open the file
        file.open(function(err, file) {
          // Peform a find to get a cursor
          var stream = file.stream();

          // For each data item
          stream.on("data", function(item) {
            // Check if stream is paused
            assert.equal(false, stream.paused);
            // Pause stream
            stream.pause();
            // Restart the stream after 1 miliscecond
            setTimeout(function() {
              stream.resume();
            }, 100);
          });

          // For each data item
          stream.on("end", function(item) {
            stream.destroy();
          });
          // When the stream is done
          stream.on("close", function() {
            db.close();
          });
        });
      });
    });
  });
});

destroy

Destroys the stream, then no farther events will be fired.

destroy()

Examples

A simple example showing the use of the readstream destroy function.

var Db = require('mongodb').Db,
    MongoClient = require('mongodb').MongoClient,
    Server = require('mongodb').Server,
    ReplSetServers = require('mongodb').ReplSetServers,
    ObjectID = require('mongodb').ObjectID,
    Binary = require('mongodb').Binary,
    GridStore = require('mongodb').GridStore,
    Grid = require('mongodb').Grid,
    Code = require('mongodb').Code,
    BSON = require('mongodb').pure().BSON,
    assert = require('assert');

var db = new Db('test', new Server('locahost', 27017));
// Establish connection to db
db.open(function(err, db) {
  // File id
  var fileId = new ObjectID();
  // Create a file
  var file = new GridStore(db, fileId, "w");
  file.open(function(err, file) {
    // Write some content and flush to disk
    file.write('Hello world', function(err, file) {
      file.close(function(err, result) {

        // Let's create a read file
        file = new GridStore(db, fileId, "r");
        // Open the file
        file.open(function(err, file) {
          // Peform a find to get a cursor
          var stream = file.stream();

          // For each data item
          stream.on("data", function(item) {
            // Destroy the stream
            stream.destroy();
          });

          // When the stream is done
          stream.on("close", function() {
            db.close();
          });
        });
      });
    });
  });
});

resume

Resumes this stream.

resume()

Examples

A simple example showing the use of the readstream resume function.

var Db = require('mongodb').Db,
    MongoClient = require('mongodb').MongoClient,
    Server = require('mongodb').Server,
    ReplSetServers = require('mongodb').ReplSetServers,
    ObjectID = require('mongodb').ObjectID,
    Binary = require('mongodb').Binary,
    GridStore = require('mongodb').GridStore,
    Grid = require('mongodb').Grid,
    Code = require('mongodb').Code,
    BSON = require('mongodb').pure().BSON,
    assert = require('assert');

var db = new Db('test', new Server('locahost', 27017));
// Establish connection to db
db.open(function(err, db) {
  // File id
  var fileId = new ObjectID();
  // Create a file
  var file = new GridStore(db, fileId, "w", {chunk_size:5});
  file.open(function(err, file) {
    // Write some content and flush to disk
    var fileBody = 'Hello world';
    file.write(fileBody, function(err, file) {
      file.close(function(err, result) {
        // Let's create a read file
        file = new GridStore(db, fileId, "r");

        // Open the file
        file.open(function(err, file) {
          // Peform a find to get a cursor
          var stream = file.stream(true);

          // Pause the stream initially
          stream.pause();

          // Save read content here
          var fileBuffer = '';

          // For each data item
          stream.on("data", function(item) {
            // Check if stream is paused
            assert.equal(false, stream.paused);
            // Pause stream
            stream.pause();

            fileBuffer += item.toString('utf8');

            // Restart the stream after 1 miliscecond
            setTimeout(function() {
              stream.resume();
            }, 100);
          });

          // For each data item
          stream.on("end", function(item) {
          });
          // When the stream is done
          stream.on("close", function() {
            // Have we received the same file back?
            assert.equal(fileBuffer, fileBody);
            db.close();
          });

          // Resume the stream
          stream.resume();
        });
      });
    });
  });
});

Contents

Manual

MongoDB Wiki