MongoDB:如何存储文件(Word,Excel等)?

时间:2012-06-20 15:20:05

标签: node.js mongodb mongoose

我还没有考虑将文件(如Word,Excel等)严格存储到MongoDB中,我想知道 - 我能在MongoDB中存储整个docx或excel文件,然后通过查询来检索它们吗?

2 个答案:

答案 0 :(得分:15)

使用gridfs是。

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

您可以在此处找到更多信息:http://www.mongodb.org/display/DOCS/GridFS

正常的实现是将大文档分解为较小的文档并将这些aprts存储在由查询文件的fs.files集合掌握的块集合中。

答案 1 :(得分:6)

MongoDB是一个文档数据库,用于存储类似JSON的文档(称为BSON)。 BSON对象的最大大小为16 megabytes,对于某些用例来说可能太小了。

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

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