我想知道哪个更好/更快:
- 拥有一个单独的文档集合,其中仅包含保存为二进制数据的图像,可能还有一些元数据。
- 或者使用 GridFS 来存储图像。
如果您的图像很小,您可以将它们作为二进制数据存储在集合中的文档中。只需考虑每次查询文档时都会检索它们(除非您从查询中排除“图像”字段)。
但是,如果您的图像更大,我会使用 GridFS。GridFS 有一些特性使其非常擅长处理您应该考虑的图像:
在性能方面,对常规文档的读/写应该与对 GridFS 的读/写没有什么不同。我不会认为性能是选择其中任何一个的区别因素。
我个人的建议是使用 GridFS,但您需要针对您的特定用例进行分析。
希望这可以帮助。
我使用 GridFS 来存储照片和文档。它非常简单,从集合中检索它以在本地显示或保存很容易。您可以将元数据与二进制数据一起存储在同一个集合中。这样您就不需要创建额外的集合来存储它们。
例如,在我的一个项目中,我存储用户个人资料照片以及用户名、文件类型和上传日期。
GridFS 旨在以有效的方式处理文件。 http://www.mongodb.org/display/DOCS/When+to+use+GridFS
不要忘记您可能必须将数据转换为文件并返回。
但可以肯定的是,请进行考虑到您的使用模式的性能测试。