<p>这并不是您问题的具体答案,因为答案很可能是关于您的设置配置的。但是,由于您似乎正在查看文档示例并因此进行评估,我认为有必要提供一些关于使用<a href="http://docs.mongodb.org/manual/core/gridfs/" rel="nofollow"><strong>GridFS</strong></a>的要点。在</p>
<p><a href="http://docs.mongodb.org/manual/core/gridfs/" rel="nofollow"><strong>GridFS</strong></a>的目的不是存储“blob”或替换“filesystem方法”的用法,正如您(或ODM文档)所述。是的,它可以这样使用,但是它存在的唯一原因是为了克服MongoDB在BSON文档存储上的16MB<a href="http://docs.mongodb.org/manual/reference/limits/" rel="nofollow">limitation</a>。在</p>
<p>一个常见的误解是GridFS是MongoDB的一个“特性”,但实际上它是一个在<strong>驱动程序</strong>端实现的<strong>规范,用于处理<strong>分块</strong>大文档内容。服务器端根本不存在<strong>魔法</strong>,就MongoDB的内部操作而言,这只是另一个包含字段和数据的BSON文档。在</p>
<p>驱动程序实现所做的是将内容分成<strong>更小的块</strong>并将内容分发到集合中的多个文档中。同样,在阅读内容时,也提供了一些方法来<em>跟踪</em>和<em>获取构成总内容的各种文档。简而言之,<strong>使用GridFS方法读取</strong>和<strong>写入</strong>会导致通过连接到MongoDB的<strong>多个</strong>调用。在</p>
<p>考虑到这一点,如果您的<strong>内容</strong>实际上总是小于16MB的<strong>大小,那么您最好只在单个文档中使用<strong>编码的</strong>二进制数据,因为更新将是原子性的,结果是从每个文档的单个读取操作中更快地读取。在</p>
<p>因此,如果您的文档大小必须超过16MB,那么就使用GridFS。如果不只是将内容编码到一个普通的文档字段中,那就是GridFS所做的一切。在</p>
<p>有关更多信息,请阅读常见问题解答:</p>
<p><a href="http://docs.mongodb.org/manual/faq/developers/#when-should-i-use-gridfs" rel="nofollow">http://docs.mongodb.org/manual/faq/developers/#when-should-i-use-gridfs</a></p>