我应该如何理解mongoDB GridFS?

时间:2013-09-11 07:31:17

标签: mongodb document gridfs

我现在使用perl脚本客户端将一些大数据存储到mongoDB中。但是现在我遇到了一个问题,有些文件超出了16M的大小限制,所以,我必须选择GridFS。从GridFS文件中,我读了这个:

  

GridFS是用于存储和检索超过BSON文档大小限制为16MB的文件的规范。

     

GridFS不是将文件存储在单个文档中,而是将文件分成多个部分或块[1],并将每个块存储为单独的文档。默认情况下,GridFS将块大小限制为256k。

它确实让我感到困惑。“文件”是什么意思?“而不是将文件存储在单个文档中”,这意味着,mongoDB将文件存储在单个文档中而不使用GridFS,对吧?但我认为它应该说:“而不是将文档存储在单个文件中,......”因此,“文件”和“文档”之间的关系和区别使我感到困惑。

1 个答案:

答案 0 :(得分:1)

  

“文件”是什么意思?

一个文件。单词文档,Excel电子表格,HTML文件等任何文件。 GridFS专为文件存储而设计。

  

这意味着,mongoDB将文件存储在单个文档中

MongoDB没有做任何事情,它甚至不管理GridFS,文档假设您在遇到单个文档的有限大小后来到GridFS,就像您一样。

  

而不是将文档存储在单个文件中,......

不,这是不正确的。什么是文件? MongoDB自己的记录称为文档,如何将这些文件存储在数据库中?您将数据存储在数据库中的文档中。

  

因此,“文件”和“文档”之间的关系和区别使我感到困惑。

文件是物理文件,文档基本上是一行。