Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java MongoDB中用图像保存对象数据的高效处理_Java_Spring_Mongodb_Morphia_Jongo - Fatal编程技术网

Java MongoDB中用图像保存对象数据的高效处理

Java MongoDB中用图像保存对象数据的高效处理,java,spring,mongodb,morphia,jongo,Java,Spring,Mongodb,Morphia,Jongo,这里我想使用Java将一个对象保存到MongoDB。我发现Morphia、Jongo和Springs提供了实现它的框架 为了将图像存储到mongoDB,我找到了GridFS 我的问题是 一,。我有一个对象,它包含数据和图像。我必须存储,并且必须对其中的字段进行大量的数学计算。同时,我想搜索一个特定的图像,如果某些条件满足。。?? 二,。如果我使用GridFs和数据作为BSon数据将图像与对象存储图像分离,那么如何将此文档与图像链接 三,。当我将数据与对象分离时,如果数据本身存在16 MB,则意味

这里我想使用Java将一个对象保存到MongoDB。我发现Morphia、Jongo和Springs提供了实现它的框架

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

我的问题是

一,。我有一个对象,它包含数据和图像。我必须存储,并且必须对其中的字段进行大量的数学计算。同时,我想搜索一个特定的图像,如果某些条件满足。。?? 二,。如果我使用GridFs和数据作为BSon数据将图像与对象存储图像分离,那么如何将此文档与图像链接

三,。当我将数据与对象分离时,如果数据本身存在16 MB,则意味着我必须如何处理此问题。。??对于这一点,如果我选择GridFs,也意味着它正在转换为块,我想逐字段分析

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

有人能建议我解决这个问题吗?。任何链接..或者任何想法,哪个带有MongoDB的java框架将非常有效地处理所有这些实时场景

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


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

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

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

当你想在课堂和学生层面上进行数据分析时,你应该把每个学生放在自己的文档中,然后让课堂参考学生或学生参考课堂或两者兼而有之

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


无论是否嵌入或引用图像,图像文档/对象应仅包含元数据,而二进制图像数据本身应存储在GridFS上,并由图像文档中的文件名引用。

@Philipp-这里我要存储复杂的业务对象。例如,如果我要存储一个教室对象,它包含许多学生,每个学生包含许多学生照片。教室中的对象有自己的数据。每个学生都有自己的数据和照片列表。我必须在这里高效地查询和分析数据。它可能是课堂智慧或学生智慧Thanks@SuseendranP更新了你的问题和我的答案。@Philipp-谢谢你的编辑。我有一个教室对象,我将它保存为BSON,因为它包含学生引用。就像我将学生照片存储为BSON一样,学生照片很少像阵列那样嵌入图像中。但是,任何时候,任何学生数据都存在16 MB,我如何处理这种情况。。??为什么我更多地谈论BSON意味着我想频繁地操作数据..比如搜索,添加等。。Thanks@SuseendranP除了应该存储在GridFS上的二进制图像数据外,您在学生文档中存储的数据可能会超过每个学生16MB吗?@Philipp-感谢您的回复。您建议将图像作为数组嵌入到student对象中,而我将图像嵌入到同一文档中,我不确定所有student对象的图像大小是否都会低于16MB。我必须检查每个学生对象是否在嵌入式和GridFS之间切换。如果我被误解了,请原谅。-谢谢