栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

查询MongoDB GridFS?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

查询MongoDB GridFS?

GridFS通过为每个文件存储许多块来工作。这样,您可以交付和存储非常大的文件,而不必将整个文件存储在RAM中。另外,这使您可以存储大于最大文档大小的文件。建议的块大小为256kb。

文件元数据字段可用于存储其他特定于文件的元数据,这比将元数据存储在单独的文档中更为有效。这在很大程度上取决于您的确切要求,但是通常,元数据字段提供了很大的灵活性。请记住,

fs.files
默认情况下,一些更明显的元数据已经是文档的一部分:

> db.fs.files.findOne();{    "_id" : ObjectId("4f9d4172b2ceac15506445e1"),    "filename" : "2e117dc7f5ba434c90be29c767426c29",    "length" : 486912,    "chunkSize" : 262144,    "uploadDate" : ISODate("2011-10-18T09:05:54.851Z"),    "md5" : "4f31970165766913fdece5417f7fa4a8",    "contentType" : "application/pdf"}

要实际从GridFS中读取文件,您必须从中获取文件文档

fs.files
和中的块
fs.chunks
。最有效的方法是逐块将其流式传输到客户端,因此您不必将整个文件加载到RAM中。该
chunks
集合具有以下结构:

> db.fs.chunks.findOne({}, {"data" :0});{    "_id" : ObjectId("4e9d4172b2ceac15506445e1"),    "files_id" : ObjectId("4f9d4172b2ceac15506445e1"),    "n" : 0, // this is the 0th chunk of the file    "data" : }

如果要使用

metadata
字段
fs.files
进行查询,请确保您理解点符号,例如

> db.fs.files.find({"metadata.OwnerId": new ObjectId("..."),          "metadata.ImageWidth" : 280});

还请确保您的查询可以使用的索引

explain()



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/406593.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号