mongooseとgridfs-streamを使ってmongodbからファイルを読み込んでいます。私はここの例に従っています:https://github.com/aheckmann/gridfs-streamnode.js、mongoose、gridfs-streamを使ってファイルを読み込みます。
ファイルをdbに書き込むことはうまくいきましたが、ファイルの読み込みに問題がありました。
何のMongoDBルックス(ショーコレクション)
fs.chunks
fs.files
何のファイル・インデックス・ルックス(db.fs.files.find())
{ "_id" : ObjectId("5140392659851df70b000001"),
"filename" : "cover",
"contentType" : "binary/octet-stream",
"length" : 85734,
"chunkSize" : 262144,
"uploadDate" : ISODate("2013-03-13T08:30:30.299Z"),
"aliases" : null,
"metadata" : null,
"md5" : "4476b26067daa0677978ba501308a35d" }
その後、私は、ファイルを取得するには、このコードを使用します名前の "カバー"
...
var gfs = Grid(mongoose.connection.db, mongoose.mongo)
var readstream = gfs.createReadStream('cover')
エラーが発生しました:
Error: cover does not exist
at self.collection.self.fileId (/mypath/node_modules/mongoose/node_modules/mongodb/lib/mongodb/gridfs/gridstore.js:198:26)
at Cursor.nextObject (/mypath/node_modules/mongoose/node_modules/mongodb/lib/mongodb/cursor.js:654:35)
at Cursor.close (/mypath/node_modules/mongoose/node_modules/mongodb/lib/mongodb/cursor.js:960:5)
at Cursor.nextObject (/mypath/node_modules/mongoose/node_modules/mongodb/lib/mongodb/cursor.js:654:17)
at Cursor.nextObject.commandHandler (/mypath/node_modules/mongoose/node_modules/mongodb/lib/mongodb/cursor.js:631:14)
at Db._executeQueryCommand (/mypath/node_modules/mongoose/node_modules/mongodb/lib/mongodb/db.js:1702:5)
at g (events.js:185:14)
at EventEmitter.emit (events.js:115:20)
at Server.Base._callHandler (/mypath/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/base.js:130:25)
at Server.connect.connectionPool.on.server._serverState (/mypath/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/server.js:517:20)
私はそれをGoogleで検索し、いくつかの可能な関連リンクを見つけた:
https://github.com/mongodb/node-mongodb-native/issues/621
Why gridfs get isn't working on file id (ObjectId) only by filename
私は "5140392659851df70b000001" と "ファイル名" を交換する場合、それは動作します: 'VAR readstream = gfs.createReadStream( '5140392659851df70b000001')'。理由は鍵を設定することに関連していると思いますか? – LKS
また、ドライバストリームの実装を見てみることもできます。http://mongodb.github.com/node-mongodb-native/api-generated/gridstore.html#stream – christkv
興味深いことに、ファイルへの参照をマングース作成の文書ですか?私はGridFSを使用してみて、人々がそれをどのように実装しているのだろうかと思っていました。 – Leonidas