2016-09-28 80 views
0

我使用node,express和mongodb创建了一个RESTful API,并且我用作参考的书建议在需要处理大于MongoDB截断的文件的情况下使用GridFS(即gridfs-stream) (16MB)有没有使用GridFS作为默认的MongoDB?

我不确定我的应用程序是否需要处理大小合适的文件,但是我想知道是否存在使用它的缺点,以免我稍后需要该功能。

我应该意识到有什么缺点(即显着的不必要的表现处罚,稳定性问题),我应该知道,以帮助做出这个决定?

我也很乐意为您提供备用文件管理解决方案的建议。

谢谢!

回答

1

不使用GridFS的为小型二进制数据 GridFS的需要两个疑问:一个获取文件的元数据,一个用于因此获取其内容 ,如果使用GridFS的存储小文件,你加倍的查询数量 那你的应用程序必须做。 GridFS基本上是分解大型数据库中二进制对象的一种方式。 GridFS用于存储大于数据的数据,比适合单个文档更大。作为最佳实践的规则,任何太大而无法立即加载到客户端的东西可能不是您想要一次加载到服务器上的东西 。因此,任何你想要流向客户端的东西都是GridFS的好选择。将在一次 在客户端上加载的所有东西,如图像,声音,甚至小的视频剪辑,一般应该只是 被嵌入在主文档中

此外,如果你的文件都是较小的16 MB BSON文档大小限制,请考虑将文件手动存储在单个文档中,而不是使用GridFS。您可以使用BinData数据类型来存储二进制数据。有关使用BinData的详细信息,请参阅驱动程序文档。

看到https://docs.mongodb.com/manual/core/gridfs/

请标明正确的,如果这有助于