0

コレクションにファイルを追加しましたmy_collections

ファイルが保存されたかどうかを確認できません。

デフォルトのバケット (fs.chunkおよびfs.files) を使用すると、以下のコードは適切に機能します

db.my_collection.files.find()

{ "_id" : ObjectId("50e03d29edfdc00d34000001"), "filename" : "hd.txt", "contentType" : "plain/text", "length" : 85, "chunkSize" : 1024, "uploadDate" : ISODate("2014-10-29T06:57:42.375Z"), "aliases" : null, "metadata" : {  }, "md5" : "dc20cdc19005d04b8c36a889128170a8" }

コード:

var conn = mongoose.createConnection('localhost', 'testgridfs');
conn.once('open', function () {
var gfs = Grid(conn.db, mongoose.mongo);


  var options =  {
    _id: '50e03d29edfdc00d34000001', // a MongoDb ObjectId
    filename: 'hd.txt', // a filename
    mode: 'w',
    chunkSize: 1024,
    content_type: 'plain/text',
    root: 'my_collection',//<<<<< **if i comment it ,default collection is taken and codee works fine**
    metadata: {}
  }



  // write (this works in both default and custom bucket case)
  // var writestream = gfs.createWriteStream(options);
  // fs.createReadStream('/home/pop/Downloads/hd.txt').pipe(writestream);


  //chk exits or not
  gfs.exist(options  , function (err, found) {
    if (err) return handleError(err);
      found ? console.log('File exists') : console.log('File does not exist');
    });  
})

ファイルは表示されますがdb.my_collection.files、コードは表示されますFile does not exist

root オプションを削除しても、同じコードが機能します。

GridFS リファレンスに記載されているように、複数のバケットを使用したいと考えています。

助言がありますか?

4

1 に答える 1

0

問題はバージョンにありました。github のコードは最新の 0.5.3 ですが、npm は 0.5.1 です。

だから私はgithubから手動でダウンロードしましたが、すべて正常に動作します。 https://github.com/aheckmann/gridfs-stream

于 2014-10-30T07:26:26.043 に答える