首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MongoDB中利用图像存储对象数据的高效处理

MongoDB中利用图像存储对象数据的高效处理
EN

Stack Overflow用户
提问于 2013-11-13 11:11:00
回答 1查看 981关注 0票数 1

在这里,我想使用Java将一个对象保存到MongoDB。我发现摩菲亚,Jongo,Springs都提供了实现它的框架。

为了将图像存储到mongoDB,我找到了GridFS

我的问题是,

  1. 我有一个对象,它既包含数据,也包含图像。我必须存储,并且必须对其中的字段进行大量的数学计算。我也想搜索一个特定的图像,如果某些条件满足.?

  1. 如果我使用GridFs和数据作为BSon数据将图像与对象存储图像分开,那么如何将该文档与图像..?

  1. 当我将数据与对象分离时,如果数据本身存在16 MB,意味着我必须如何处理这个..?为此,如果我使用GridFs,意味着它正在转换为块,我想逐字段分析.?

  1. 在特定时间,在将对象写入mongodb.??之前,我可以在java中找到对象的大小吗?

请有人建议我克服这个problem..any link..or,知道哪个MongoDB java框架将非常有效地处理所有这些实时场景..??

有关数据结构的更多信息:

我想存储复杂的业务对象。例如,如果我想存储一个教室对象,它包含许多学生,每个学生都包含许多照片。在课堂上,对象有自己的data.And,每个学生都有自己的数据和照片列表。我必须有效地查询和分析这里的数据。它可以是课堂智慧,也可以是学生智慧。

EN

回答 1

Stack Overflow用户

发布于 2013-11-13 12:27:22

您可以将图像的元数据保存在普通文档中,该文档还包括可以找到二进制数据的GridFS文件名。

将元数据放在GridFS上将意味着它将成为二进制数据。然后,您就没有任何方法来查询它的文件名了。因此,当您的图像元数据也有超过16 So限制的风险时,这意味着您应该重新考虑您的数据库模式,并将其分离为多个文档。

当你想在课堂和学生层面上进行数据分析时,你应该把每个学生都放在一个文件中,然后要么让教室参考学生,要么让学生参考教室(或者两者都参考)。

我假设您的学生会在应用程序的生命周期中添加越来越多的图片。MongoDB不喜欢随时间增长的文档,因为不断增长的对象意味着MongoDB需要不断地重新分配它们的存储空间,这是写操作的性能杀手。在这种情况下,您还应该有一个单独的文件,每个图片,其中引用他们的学生。但是,如果情况并非如此(图像列表在创建时创建一次,然后很少更改),则应该将图像作为数组嵌入到学生对象中。

不管您是否嵌入或引用图像,图像文档/对象都应该只包含元数据,而二进制图像数据本身应该存储在GridFS上,并由其文件名从图像文档引用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19952176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档