我正在研究gridFS,我有几个问题。1)gridFS通过生成的_id自动索引文件。但是大多数时候我是通过文件名获取文件的,所以我应该自己在“文件名”上创建索引吗?2)gridFS没有文件夹,只有文件名,但我可以通过使用带斜杠的文件名来模拟文件夹,对吗?3)如果我在“文件名”上建立索引——使用短文件名在性能方面是否更好?我的意思是-如果我使用24个符号长+后缀的用户_id,例如"/images/avatar_4f1d36b58e42ba3836ed178e_t.jpg",在如此长的字段上建立索引不会减慢我的系统速度吗?使用短用户登录名而不是_id会更好(更快)吗?
我有一个托管在heroku上的Sinatra应用程序,我正在尝试启用文件上传。我知道heroku不允许保存到文件系统,所以我试图直接使用GridFS将图像保存到MongoDB。但我不知道怎么办。使用下面的代码,我可以保存到文件系统base_dir=Dir.pwd+"/static/images/channels/"File.open("#{base_dir}"+params['logo'][:filename],"w")do|f|f.write(params['logo'][:tempfile].read)end如何在不先将文件保存到文件系统的情况下将文件直接保存到MongoDB?
我有一个上传图片的REST服务,这是负责在mongodb中注册的主要代码:publicStringwriteFiles(InputStreaminputStream,StringfileName,StringcontentType)throwsIOException{//savethefileGridFSgridFS=newGridFS(getDB(),Collections.PICTURES_FILES.name());GridFSInputFilegridFSInputFile=gridFS.createFile(inputStream,fileName);gridFSInputF
我正在做一些测试,看看我们是否可以在MongoDB上使用GridFS来存储文件以供将来的应用程序使用;我正在使用10gen的C#驱动程序将一个80Mb的文件“上传”到数据库。第一次添加很好,花了大约3秒,这在我的测试机器上还算不错;然而,以后添加同一个文件需要更长的时间,最多30秒,最终MongoDB告诉我它耗尽了内存并崩溃了。添加10个大小为80Mb的文件会导致在系统崩溃之前为我的数据库创建8个文件,名为dbaseName.0到dbaseName.7,它们的文件大小从16Mb呈指数增长到512Mb,从文件0到5,然后是文件6和7个都是512Mb。这些文件不到2Gb,显然第10次添加文
文档提到可以使用gridFS检索文档的范围。但是我还没有找到有关此的更多详细信息。我想使用java驱动程序为grails应用程序获取一系列文件以支持音频流。在这种情况下,我是否需要手动获取和组装包,还是有更好的方法? 最佳答案 您可以跳过不需要的文件部分,只从那里阅读您需要的部分。GridFSDBFilefile=files.findOne("file");InputStreaminputStream=file.getInputStream();longactuallySkipped=inputStream.skip(numberO
我有一个将文件保存到gridfs的功能。重构后它以某种方式偶尔停止工作,我花了2个多小时茫然地盯着它看。我发誓它和以前差不多。我好像记得在我加close之前一开始没用,后来就开始用了,不过可能是失眠了。本质上,问题是db.fs.files集合没有任何记录,但正在将block添加到db.fs.chunks。data是通过fs.readFile()从磁盘加载的缓冲区31vargs=newmongodb.GridStore(this.db,filename,"w",{32"chunk_size":1024*4,33metadata:{34hashpath:gridfs_name,35hash
在使用mongogem的ruby中,我找不到任何关于如何使用GridFs查找文件名的文档。 最佳答案 第一个getaconnectiontothedatabase,我们称之为db。然后你可以连接到你的GridFS作为Mongo::Grid或Mongo::GridFileSystem实例:fs=Mongo::Grid.new(db)fs=Mongo::GridFileSystem.new(db)现在您可以使用Mongo::GridExt::InstanceMethodsfs上的方法。特别是,您可以使用exist?:f=fs.exi
我一直在使用perl、MongoDB和GridFS进行一些宠物开发,并且想知道-perl是否可以与Mongofiles交互(除了使用系统命令导航并以这种方式调用它,嘿)-比如。.well...cpan库?还是Mongo的当前CPAN模块的扩展?举个我想做的例子:我希望能够将文件存储到我的mongoDB中并将文件检索到我的mongoDB-例如,从命令行,一旦我导航到其中包含mongofiles的目录,我就可以执行mongofilesput"C:\Users\Me\cool.txt"它会将文件存储到数据库中!假设我从驱动器中删除了cool.txt。现在当我执行时:mongofilesget
我的应用程序使用Node0.10.1、express3.1.1、mongoose3.6.4、mongo2.4.1和gridfs-stream0.4.0。我已经使用共享连接设置了mongoose和gridfs-stream,如下所示:/*************app.js***************///Addedthisinedittoshowsetupofmongooseandgridfs-streamvarmongoose=require("mongoose");varGrid=require('gridfs-stream');Grid.mongo=mongoose.mongo
如何通过mongoshell将文件“上传”到我的MongoDB以及如何检索同一文件?我想知道,这样做之后的输出是什么。我认为展示我所做的将表明我的尝试是多么愚蠢。db.fs.files.insert("foo.txt");这似乎只是插入了实际的文本,而不是我想要的文档......然后检索,我发现db.fs.files.retrieve()不是函数。find()只是向我显示...但我想要打印实际文档的内容,无论是二进制数据还是w/e我都不在乎,哈哈。对于如此悲惨的尝试,我深表歉意-但也许它展示了我对GridFS可以做什么知之甚少-除了用法之外,也许有人可以为我解决这个问题。