在流星应用程序中使用mongofiles和GridFS

时间:2015-05-11 15:52:12

标签: meteor gridfs

我开始在Meteor应用程序中使用GridFS。我已经设置了文件集" assetFiles"使用这样的GridFS存储适配器:

AssetCollection = new Mongo.Collection( "assets" );

AssetFileStore = new FS.Store.GridFS( "assetFiles" );
AssetFilesCollection = new FS.Collection( "assetFiles", {
    stores: [AssetFileStore]
});

AssetFilesCollection.allow({
  insert: function(){
    return true;
  },
  update: function(){
    return true;
  },
  remove: function(){
    return true;
  },
  download: function(){
    return true;
  }
});

我已经在其中插入了一些文件并使用meteor mongo客户端检查它们实际存在于db。

现在我想使用mongofiles实用程序从此db中提取文件到我的文件系统。

使用meteor mongodb数据库,这里是集合列表:

meteor:PRIMARY> show collections
assets
cfs._tempstore.chunks
cfs.assetFiles.filerecord
cfs_gridfs._tempstore.chunks
cfs_gridfs._tempstore.files
cfs_gridfs.assetFiles.chunks
cfs_gridfs.assetFiles.files
meteor_accounts_loginServiceConfiguration
system.indexes
users

而且我不明白如何使用mongofiles实用程序来定位我的assetFiles GridFS文件集以获取特定文件甚至文件列表。

这是我的尝试:

./mongofiles -h 127.0.0.1:3001 -d meteor list
2015-05-11T17:34:40.701+0200    connected to: 127.0.0.1:3001

成功连接到db时,它只返回任何内容。 我的数据库在我自己的FS上。我想指定一个集合名称,但这个参数显然不再存在。

感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

您需要更改前缀以附加到正确的集合。

$ mongofiles --help
       ....
       --prefix=                  GridFS prefix to use (default is 'fs')`

例如。

mongofiles --port 3001 -d meteor --prefix 'cfs_gridfs.assetFiles' list

希望这有帮助! 请接受,谢谢!