2012-06-20 99 views

回答

14

使用gridfs是的。

Gridfs是一个存储规范。它不是内置于数据库中,而是内置于驱动程序中。

您可以更这里找出:http://www.mongodb.org/display/DOCS/GridFS

这是正常的实现是你的大文件分解成较小的和那些aprts存储在一个块集合由您查询您的文件fs.files收集掌握。

+0

+1帮助我提高答案和挖掘细节! – jsalonen

+1

如果您的二进制文件符合BSON大小限制(当前为16MB),您还应该考虑将二进制对象直接存储在单个文档中。有一个关于[何时使用GridFS]的建议的wiki页面(http://www.mongodb.org/display/DOCS/When+to+use+GridFS)。 – Stennie

+0

事实上,这是完全正确的,因为它会导致不必要的查询和空间分配。 – Sammaye

6

MongoDB是存储类JSON文件(称为BSON)文档数据库。 BSON对象的最大大小为16 megabytes,对于某些使用情况而言可能太少。

如果你想存储任意大小的二进制数据,你可以使用GridFS的(http://www.mongodb.org/display/DOCS/GridFS+Specification)。 GridFS会自动将您的文档(或任何二进制数据)拆分成多个BSON对象(usually 256k in size),因此您只需要担心存储和检索完整文档(无论大小如何)。

据我所知,猫鼬不支持GridFS的。但是,您可以通过its native driver's GridStore使用GridFS。只需运行npm install mongodb并开始黑客入侵!

+0

我知道 - 这就是为什么我说在标题中开玩笑 - 我说我应该绕过那个笑话。 MongoDB能否将Word或Excel分解为BSON并在查询时再次重新组合? – PinkElephantsOnParade

+1

MongoDB不是JSON而BSON不是JSON – Sammaye

+1

Msx doc大小如果实际上是16Mb – Sammaye

相关问题