保健励志美文体育育儿作文
投稿投诉
作文动态
热点娱乐
育儿情感
教程科技
体育养生
教案探索
美文旅游
财经日志
励志范文
论文时尚
保健游戏
护肤业界

技术干货如何在MongoDB中轻松使用GridFS?

  GridFS是用于存储和检索超过16MB大小限制的BSON文档文件的规范。注意
  GridFS不支持多文档事务
  相较于将一个文件存储在单条文档中,GridFS将文件分为多个部分或块〔1〕,并将每个块存储为单独的文档。默认情况下,GridFS使用的块默认大小为255kB;也就是说,除最后一个块,GridFS会将文件划分为255kB的块。最后一个块只有必要的大小。同样,最后的那个块也不会大于默认的块大小,仅使用所需的空间以及一些其他元数据。
  GridFS使用两个集合来存储文件。一个集合存储文件块,另一个集合存储文件元数据。GridFS集合一节详细介绍了每个集合。
  当你从GridFS查询文件时,驱动程序将根据需要重新组装该文件所有的块。你可以对GridFS存储的文件进行范围查询。你还可以从文件的任意部分访问其信息,例如跳到视频或音频文件的中间。
  GridFS不仅可用于存储超过16MB的文件,而且还可用于存储您要访问的任何文件而不必将整个文件加载到内存中。另请参阅何时使用GridFS。
  什么时候使用GridFS
  在MongoDB中,使用GridFS存储大于16MB的文件。
  在某些情况下,在MongoDB数据库中存储大型文件可能比在系统级文件系统上存储效率更高。如果文件系统限制了目录中文件的数量,则可以使用GridFS来存储所需数量的文件。当你要访问大文件部分的信息而不必将整个文件加载到内存中时,可以使用GridFS来调用文件的某些部分,而无需将整个文件读入内存。当你希望保持文件和元数据在多个系统和设施之间自动同步和部署时,可以使用GridFS。使用地理分布的复制集时,MongoDB可以自动将文件及其元数据分发到多个mongod实例和设施。
  如果您需要对整个文件的内容进行原子更新,请不要使用GridFS。或者,您可以存储每个文件的多个版本,并在元数据中指定文件的当前版本。上传文件的新版本后,您可以原子更新元数据中指示为最新状态的字段,然后在需要时删除以前的版本。
  此外,如果文件均小于16MBBSON文档大小限制,请考虑将每个文件存储在单个文档中,而不是使用GridFS。您可以使用BinData数据类型存储二进制数据。有关使用BinData的详细信息,请参见驱动程序文档。
  使用GridFS
  要使用GridFS存储和检索文件,请使用以下任一方法:MongoDB驱动程序。请参阅驱动程序文档,以获取有关将GridFS与驱动程序一起使用的信息。mongofiles命令行工具。有关文档,请参见mongofiles参考。
  GridFSCollections
  GridFS将文件存储在两个集合中:块存储二进制块。有关详细信息,请参见chunks集合。文件存储文件的元数据。有关详细信息,请参见文件集合。
  GridFS通过使用存储桶名称为每个集合添加前缀,将集合放置在一个公共存储桶中。默认情况下,GridFS使用两个集合以及一个名为fs的存储桶:fs。filesfs。chunks
  您可以选择其他存储桶名称,也可以在一个数据库中创建多个存储桶。完整集合名称(包括存储桶名称)受命名空间长度限制。
  块集合
  块〔1〕集合中的每个文档都代表了GridFS中表示的文件的不同的块。此集合中的文档具有以下格式:{id:ObjectId,filesid:ObjectId,n:num,data:binary}
  chunks集合中的文档包含以下字段:chunks。id块的唯一ObjectId。chunks。filesid在files集合中指定的父文档的id。chunks。n块的序列号。GridFS从0开始对所有块进行编号。chunks。data块BSON二进制类型的荷载。
  文件集合
  文件集合中的每个文档代表GridFS中的一个文件。{id:ObjectId,length:num,chunkSize:num,uploadDate:timestamp,md5:hash,filename:string,contentType:string,aliases:stringarray,metadata:,}
  files集合中的文档包含以下一些或全部字段:files。id
  该文档的唯一标识符。id是您为原始文档选择的数据类型。MongoDB文档的默认类型是BSONObjectId。files。length
  文档的大小(以字节为单位)。files。chunkSize
  每个块的大小(以字节为单位)。GridFS将文档分为大小为chunkSize的块,最后一个除外,后者仅根据需要而变大。默认大小为255KB。files。uploadDate
  GridFS首次存储这个文档的日期。此值为有日期类型。files。md5
  过期
  FIPS1402禁止使用MD5算法。MongoDB驱动程序已弃用MD5支持,并将在未来版本中删除MD5的生成。需要文件摘要的应用程序应在GridFS外部实现它,并将其存储在files。metadata中。
  filemd5命令返回的完整文件的MD5哈希。此值为字符串类型。files。filename
  可选的。GridFS文件的可读名称。files。contentType
  过期
  可选的。GridFS文件的有效MIME类型。仅应用程序用。
  使用files。metadata来存储与GridFS文件的MIME类型有关的信息。files。aliases
  过期
  可选的。别名字符串数组。仅用于应用程序
  使用files。metadata来存储与GridFS文件的MIME类型有关的信息。files。metadata
  可选的。元数据字段可以是任何数据类型,并且可以保存您要存储的任何其他信息。如果希望将其他任意字段添加到文件集合中的文档,请将其添加到元数据字段中的对象。
  GridFS索引
  GridFS使用每个块和文件集合上的索引来提高效率。为了方便起见,符合GridFS规范的驱动程序会自动创建这些索引。您还可以根据需要创建任何其他索引,以满足您的应用程序需求。
  chunks索引
  GridFS使用filesid和n字段在chunks集合上使用唯一的复合索引。可以有效地检索块,如以下示例所示:db。fs。chunks。find({filesid:myFileID})。sort({n:1})
  符合GridFS规范的驱动程序将在读取和写入操作之前自动确保此索引存在。有关GridFS应用程序的特定行为,请参阅相关的驱动程序文档。
  如果该索引不存在,则可以执行以下操作以使用mongoshell创建它:db。fs。chunks。createIndex({filesid:1,n:1},{unique:true});
  files索引
  GridFS在files集合上的filename和uploadDate字段上使用索引。该索引允许高效地检索文件,如本示例所示:db。fs。files。find({filename:myFileName})。sort({uploadDate:1})
  符合GridFS规范的驱动程序将在读取和写入操作之前自动确保此索引存在。有关GridFS应用程序的特定行为,请参阅相关的驱动程序文档。
  如果该索引不存在,则可以执行以下操作以使用mongoshell创建它:db。fs。files。createIndex({filename:1,uploadDate:1});
  〔1〕
  (1,2)在GridFS上下文中使用术语块与在分片上下文中使用术语块无关。
  分片GridFS
  GridFS考虑两个集合files和chunks。
  chunks集合
  要分片chunks集合,请使用{filesid:1,n:1}或{filesid:1}作为分片键索引。filesid是一个ObjectId,并且单调更改。
  对于不运行filemd5来验证成功上传的MongoDB驱动程序(例如,支持MongoDB4。0或更高版本的MongoDB驱动程序),可以将哈希分片用于chunks集合。
  如果MongoDB驱动程序运行filemd5,则不能使用HashedSharding。有关详细信息,请参阅SERVER9888。
  files集合
  files集合很小,仅包含元数据。GridFS所需的所有密钥都不适合在分片环境中进行平均分配。保留未分片的files允许所有文件元数据文档保留在主分片上。
  如果必须分片files集合,请使用id字段,可能与应用程序字段结合使用。
  原文链接:
  https:github。commongodbchinaMongoDBCNManualblobmastercunchugridfs。md
  关于作者:张琦
  Java开发工程师,陕西西安。

关于写以我真幸福为话题的作文每一个人都有丰富的情感世界,幸福和爱神秘的心灵深处有一个瓶子,瓶子里装着幸福,装着忧伤,装着快乐,装着烦恼。正因为有了这个瓶子,人们的生活才有滋有味,丰富多彩。下面是小编收集的……读书与梦想作文400字每个人都有自己想追求的梦想。我的梦想是成为一名舞蹈老师,我要通过学习来实现梦想。我每天学习都是为了我的梦想。每当我看见舞蹈班里舞动的身子,我就特别羡慕。这时我对我的梦想更……影响出行屡遭吐槽共享单车成牛皮癣新宿主5月24日9时许,北京市朝阳区将台地铁站口,停满了密密麻麻的共享单车。一些共享单车的车筐里、车身处,被贴满了各种小广告:24小时美女服务、公积金提取、租房、代开发票、私密会所、……我们班的小老虎小老虎是我们班袁凯涵的称号,至于为什么叫小老虎,应该是这个原因吧。他是班上学习成绩很好的一个人,然而老虎是很厉害的动物,那么形容人的话大概是指一个很厉害的人吧。袁凯涵,我……用基因工程为棉花涂上五颜六色谁说棉花只有白色?近日,记者从浙江理工大学获悉,该校生命科学与医药学院孙玉强教授团队通过基因工程,创制了一个棉花紫化突变体,解析了该突变体GhOMT1基因的功能缺失调控花青素累……爱心小学生作文500字锦集六篇在学习、工作乃至生活中,大家都经常接触到作文吧,作文是通过文字来表达一个主题意义的记叙方法。如何写一篇有思想、有文采的作文呢?以下是小编整理的爱心小学生作文500字6篇,欢迎大……不一样的自己作文650字白色的粉笔末,充溢着鼻腔。扬起的飞尘,可为尘埃蔽天,对面不见人。欢呼声,吵闹声,斥责声。。。。。。趴在课桌上,望着窗外那花花绿绿的世界,学校好似一个巨大的囚笼将我这只雏鸟牢牢地……那一次,我哭了900字作文有一天,花瓣离开花朵,有一天,树叶离开枝丫,有一天,青春离开爱恋,而不能改变的是记忆中花的香郁,也的清香,还有爱的痕迹,爱的痕迹是那样一张写满甜言蜜语的信笺。是那一张涂着心和心……涉嫌超范围采集个人隐私信息!12款App被点名国家计算机病毒应急处理中心近期通过互联网监测发现12款移动App存在隐私不合规行为,违反网络安全法、个人信息保护法相关规定,涉嫌超范围采集个人隐私信息。1、未向用户告知个……关于秋天的雨初中作文600字秋天的雨,是一个顽皮的娃娃,它带着可爱、温顺,轻轻地、轻轻地趁你不注意把秋天的大门推开。下面是小编整理的关于秋天的雨初中作文600字,一起来看一下吧!篇一:秋天的雨一场秋……春天田野300字作文春风吹醒了大地,吹绿了树林,也吹绿了田野。星期天,我和几个小伙伴去野外踏青,欣赏着春天田野的美景。我们漫步在田埂上,迎面吹来了一阵阵春风,舒服极了。脚下沉睡着一个冬天的小……爱就在我们身边作文600字爱如沙漠里的一泓清泉,滋润着你枯干的心灵;爱如地上星星点点的花朵,点缀着你的人生;爱如一根蜡烛照亮你的人生之路。生活中处处有爱,只要你留心爱无处不在。曾有这样一个真实的故……
11月中国智能机市场苹果月度销量维持国内首位,小米环比增长4南方财经1月5日电,CINNOResearch报告显示,11月苹果2021年新品iPhone13系列销量依旧维持高位,带动苹果智能机销量维持国内市场No。1,环比增长3。7,同……2022年大数据工程师薪资和工作趋势如果您对数字、数据和技术有浓厚的兴趣,那么数据工程师的职业就是您的最佳选择!Gartner2021年4月的一份报告预测,到2022年,全球超自动化经济将达到近6000亿美元,而……我喜欢出发作文范文凡是已经到达的地方,都属于昨天。哪怕那山再青,那水再秀,那风再温柔。太深的流连便成了一种羁绊,羁绊住的不仅是我的双脚,还有我的未来。我能走多远?这话不是要问我的两脚,而是……经观头条在线教育大潮退高途好未来字节教育等集体裁员,教培资本(图片来源:本报资料图)经济观察报记者任晓宁郑蘅夏去年有多火热,今年就有多冰冷。7月底到8月初,越来越多在线教育公司裁员消息出现。7月30日,高途发出公开信,创始人……五年级发卷子作文500字随着这叠试卷一张张发下来,每位同学的表现都不一样,有的同学兴高采烈,有的同学却愁眉苦脸。接下来小编搜集了五年级发卷子作文500字,欢迎阅读查看,希望帮助到大家。篇一:五年级发卷……华为未来五年的首要任务活下来,有质量地活下来华为,一度是全球登顶的智能手机制造商;华为,一度是全球登顶的5G合同签约商类似这样的头衔华为从来就不缺。但是天有不测风云,人有祸兮旦福,从2019年开始,华为开始频频受到外来非……原材料价格继续上涨!盘点成长性高的4只钴行业龙头,未来可期今年要说哪个板块好,那就是有色冶炼了,无论是锂还是钴都还是围绕着该板块。受碳中和市场环境影响,目前混合动力汽车和新能源汽车都在以节能环保为目标而转变着。而钴是替代锂电池的最佳新……5G三期集采落幕未来3至5年将是红利释放期本报记者谭伦北京报道随着四大电信运营商三期5G基站采购结果相继出炉,中国通信市场也迎来新一轮的变局。8月1日晚,中国电信和中国联通发布2021年5GSA建设工程无线……开学趣事作文300在开学中,有许多有趣的事情,如下是小编给大家整理的开学趣事作文,希望对大家有所作用。开学趣事作文篇【一】上学第一天,我很早就来到了教室,想看看会发生什么趣事。我刚坐……语言智能水平关乎国家语言能力语言智能本来指人类在运用语言文字过程中所蕴含的各种语言能力,比如,语言逻辑思维能力,语言形象思维能力,语言交际能力和语用能力。随着科学技术和信息化水平的飞跃发展,语言智能早已突……读狼爱上羊有感《狼爱上羊》是我从品学网上看到的!它讲述的是一个凄美的爱情故事:在一片辽阔草原上,一只狼爱上了一只可爱的小羊羔,狼为了那只羊,与正准备吃那只小羊羔的豹子大战了一场;狼把豹子打死……郑爽懒理被起诉风波,坚持为阿里事件发声我为什么不可以说话8月8日,电商巨头阿里巴巴某高管侵犯女员工事件仍在不断发酵。事发后,阿里巴巴CEO张勇愤怒发声,表示会彻查此事,如属实会严肃处理,绝不姑息。在受害女员工的自述文案中……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网