GridStore.seek (GridStore.IO_SEEK_CUR) を使用してファイル内にカーソルを配置していますが、一度しか機能しません。次read
および今後のすべての読み取りとシークでは、カーソルは配置されなくなります。すべての読み取りのシークを省略した場合、カーソルは正しく前方に移動します。
動作を示す小さな例を次に示します。
var Db = require('mongodb').Db,
Server = require('mongodb').Server,
ObjectID = require('mongodb').ObjectID,
GridStore = require('mongodb').GridStore;
var db = new Db('test', new Server("localhost", 27017,
{auto_reconnect: false, poolSize: 1}), {w:0, native_parser: false});
db.open(function(err, db) {
var gridStore = new GridStore(db, "test_gs_seek_with_buffer", "w");
gridStore.open(function(err, gridStore) {
gridStore.write(new Buffer("012345678901234567890", "utf8"), function(err, gridStore) {
gridStore.close(function(result) {
var gridStore = new GridStore(db, "test_gs_seek_with_buffer", "r");
gridStore.open(function(err, gridStore) {
gridStore.read( 5, function(err, data) {
console.log( data.toString() ); // "01234" --> CORRECT!
gridStore.seek(-2, GridStore.IO_SEEK_CUR, function(err, gridStore) {
gridStore.read( 5, function(err, data) {
console.log( data.toString() ); // "34567" --> CORRECT!
gridStore.seek(-2, GridStore.IO_SEEK_CUR, function(err, gridStore) {
gridStore.read( 5, function(err, data) {
console.log( data.toString() ); // "34567" --> FALSE! SHOULD BE "67890"!!!
db.close();
});
});
});
});
});
});
});
});
});
});
バグ、機能、または開発者?
ご協力いただきありがとうございます!