Lire le fichier avec node.js, la mangouste, le gridfs-stream

Je suis à l'aide de la mangouste et gridfs les cours d'eau pour stocker et lire des fichiers à partir de mongodb. Je suis l'exemple ici: https://github.com/aheckmann/gridfs-stream

L'écriture de fichiers en db fonctionne bien mais je rencontre un problème pour lire les fichiers.

Ce que l'mongodb semble (montrer les collections)

fs.chunks
fs.files

Ce que le fichier d'index de l'air (db.fs.les fichiers.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" }

Puis-je utiliser ce code pour obtenir un fichier nommé "couvrir"

...
var gfs = Grid(mongoose.connection.db, mongoose.mongo)
var readstream = gfs.createReadStream('cover')

Une erreur s'est produite:

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)

Je l'ai googlé et trouvé quelques liens relatifs:

https://github.com/mongodb/node-mongodb-native/issues/621

Pourquoi gridfs obtenir n'est pas en train de travailler sur le fichier id (ObjectId) que par nom de fichier

  • si je remplace le "nom de fichier" avec "5140392659851df70b000001", il fonctionne: var readstream = gfs.createReadStream('5140392659851df70b000001'). Je suppose que la raison est liée à la configuration de la clé?
  • Vous pouvez également regarder le pilote de flux de mise en œuvre de mongodb.github.com/node-mongodb-native/api-generated/...
  • Juste par curiosité, êtes-vous de stocker une référence au fichier dans une mangouste document créé? Je suis à la recherche dans l'aide de GridFS et je me demandais comment les gens de la mettre en œuvre.
  • fs.fichiers stocke toutes les informations de fichier lors de la fs.morceaux stocke les données du fichier. Mongo utilise ObjectId("5140392659851df70b000001") dans fs.fichiers pour rechercher les données dans fs.des morceaux. Afin de fs.fichiers stocker la référence au réel des données de morceaux.
InformationsquelleAutor LKS | 2013-03-13