new GridFSBucketReadStream(chunks, files, readPreference, filter, options){GridFSBucketReadStream}
A readable stream that enables you to read buffers from GridFS.
Do not instantiate this class directly. Use openDownloadStream()
instead.
Name | Type | Default | Description | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
chunks |
Collection |
Handle for chunks collection |
|||||||||||||||||||||
files |
Collection |
Handle for files collection |
|||||||||||||||||||||
readPreference |
Object |
The read preference to use |
|||||||||||||||||||||
filter |
Object |
The query to use to find the file document |
|||||||||||||||||||||
options |
Object | null |
optional
Optional settings.
|
Fires:
Returns:
GridFSBucketReadStream instance.Methods
-
_read()
-
Reads from the cursor and pushes to the stream.
-
abort(callback)
-
Marks this stream as aborted (will never push another
data
event)
and kills the underlying cursor. Will emit the 'end' event, and then
the 'close' event once the cursor is successfully killed.Name Type Description callback
GridFSBucket~errorCallback optional called when the cursor is successfully closed or an error occurred.
Fires:
- GridFSBucketWriteStream#event:close
- GridFSBucketWriteStream#event:end
Example
// Calling abort() on a GridFSBucketReadStream var MongoClient = require('mongodb').MongoClient, test = require('assert'); MongoClient.connect('mongodb://localhost:27017/test', function(err, db) { var bucket = new GridFSBucket(db, { bucketName: 'gridfsdestroy', chunkSizeBytes: 10 }); var readStream = fs.createReadStream('./LICENSE'); var uploadStream = bucket.openUploadStream('test.dat'); var id = uploadStream.id; // Wait for stream to finish uploadStream.once('finish', function() { var id = uploadStream.id; var downloadStream = bucket.openDownloadStream(id); var done = {}; downloadStream.on('data', function() { test.ok(false); }); downloadStream.on('error', function() { test.ok(false); }); downloadStream.on('end', function() { test.equal(downloadStream.s.cursor, null); if (done.close) { } done.end = true; }); downloadStream.on('close', function() { if (done.end) { } done.close = true; }); downloadStream.abort(function(error) { test.equal(error, null); }); }); readStream.pipe(uploadStream);
-
Sets the 0-based offset in bytes to start streaming from. Throws
an error if this stream has entered flowing mode
(e.g. if you've already calledon('data')
)Name Type Description end
Number Offset in bytes to stop reading at
-
start(start){GridFSBucketReadStream}
-
Sets the 0-based offset in bytes to start streaming from. Throws
an error if this stream has entered flowing mode
(e.g. if you've already calledon('data')
)Name Type Description start
Number Offset in bytes to start reading at
Events
-
Fired when the stream is exhausted and the underlying cursor is killed
Type:
- object
-
Emitted when a chunk of data is available to be consumed.
Type:
- object
-
Fired when the stream is exhausted (no more data events).
Type:
- object
-
An error occurred
Type:
- Error
-
Fires when the stream loaded the file document corresponding to the
provided id.Type:
- object