- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这里我想使用 Java 将一个对象保存到 MongoDB。我发现Morphia、Jongo、Springs都提供了实现它的框架。
为了将图像存储到 mongoDB,我找到了 GridFS
我的问题是,
1.我有一个对象,它包含数据和图像。我必须存储并对其中的字段进行大量数学计算。如果满足某些条件,我也想搜索特定图像..??
2.如果我使用 GridFs 和数据作为 BSon 数据将图像与对象存储图像分开,那么如何将此文档与图像链接..??
3.当我将数据与对象分离时,如果该数据本身存在 16 MB 意味着我必须如何处理这个..?为此,如果我选择 GridFs 意味着它正在转换为 block ,我想逐个字段进行分析..??
4.在特定时间我可以在将java中的对象写入mongodb之前找到它的大小..??
任何人都可以建议我解决这个问题..任何链接..或者任何想法带有 MongoDB 的 Java 框架将非常有效地处理所有这些实时场景..??
有关数据结构的更多信息:
我想存储复杂的业务对象。例如,如果我想存储一个教室对象,它包含许多学生,每个学生包含许多照片。教室中的对象有自己的数据。每个学生都有自己的数据和照片列表。我必须在这里有效地查询和分析数据。这可能是类明智的,也可能是学生明智的。
最佳答案
您可以将图像的元数据保存在普通文档中,其中还包括可以在其下找到二进制数据的 GridFS 文件名。
将元数据放在 GridFS 上意味着它将成为二进制数据 block 。然后,您将无法再通过其文件名来查询它。因此,当您的图像元数据也有超过 16MB 限制的风险时,这意味着您应该重新考虑您的数据库架构并将其分成多个文档。
当您想要在类和学生级别上进行数据分析时,您应该将每个学生放入自己的文档中,然后让教室引用学生或学生引用教室(或两者)。
我假设您的学生会在应用程序的生命周期中添加越来越多的图像。 MongoDB 不喜欢随着时间的推移而增长的文档,因为不断增长的对象意味着 MongoDB 需要不断地重新分配其存储空间,这会导致写入操作的性能 killer 。在这种情况下,您还应该为每个图像提供一个单独的文档,其中引用了它们所属的学生。但如果情况并非如此(图像列表在创建时创建一次,然后很少更改),您应该将图像作为数组嵌入到学生对象中。
无论您是否嵌入或引用图像,图像文档/对象都应仅包含元数据,而二进制图像数据本身应存储在 GridFS 上并通过图像文档中的文件名进行引用。
关于java - 在 MongoDB 中高效处理用图像保存对象数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19952176/
初学者 android 问题。好的,我已经成功写入文件。例如。 //获取文件名 String filename = getResources().getString(R.string.filename
我已经将相同的图像保存到/data/data/mypackage/img/中,现在我想显示这个全屏,我曾尝试使用 ACTION_VIEW 来显示 android 标准程序,但它不是从/data/dat
我正在使用Xcode 9,Swift 4。 我正在尝试使用以下代码从URL在ImageView中显示图像: func getImageFromUrl(sourceUrl: String) -> UII
我的 Ubuntu 安装 genymotion 有问题。主要是我无法调试我的数据库,因为通过 eclipse 中的 DBMS 和 shell 中的 adb 我无法查看/data/文件夹的内容。没有显示
我正在尝试用 PHP 发布一些 JSON 数据。但是出了点问题。 这是我的 html -- {% for x in sets %}
我观察到两种方法的结果不同。为什么是这样?我知道 lm 上发生了什么,但无法弄清楚 tslm 上发生了什么。 > library(forecast) > set.seed(2) > tts lm(t
我不确定为什么会这样!我有一个由 spring data elasticsearch 和 spring data jpa 使用的类,但是当我尝试运行我的应用程序时出现错误。 Error creatin
在 this vega 图表,如果我下载并转换 flare-dependencies.json使用以下 jq 到 csv命令, jq -r '(map(keys) | add | unique) as
我正在提交一个项目,我必须在其中创建一个带有表的 mysql 数据库。一切都在我这边进行,所以我只想检查如何将我所有的压缩文件发送给使用不同计算机的人。基本上,我如何为另一台计算机创建我的数据库文件,
我有一个应用程序可以将文本文件写入内部存储。我想仔细看看我的电脑。 我运行了 Toast.makeText 来显示路径,它说:/数据/数据/我的包 但是当我转到 Android Studio 的 An
我喜欢使用 Genymotion 模拟器以如此出色的速度加载 Android。它有非常好的速度,但仍然有一些不稳定的性能。 如何从 Eclipse 中的文件资源管理器访问 Genymotion 模拟器
我需要更改 Silverlight 中文本框的格式。数据通过 MVVM 绑定(bind)。 例如,有一个 int 属性,我将 1 添加到 setter 中的值并调用 OnPropertyChanged
我想向 Youtube Data API 提出请求,但我不需要访问任何用户信息。我只想浏览公共(public)视频并根据搜索词显示视频。 我可以在未经授权的情况下这样做吗? 最佳答案 YouTube
我已经设置了一个 Twilio 应用程序,我想向人们发送更新,但我不想回复单个文本。我只是想让他们在有问题时打电话。我一切正常,但我想在发送文本时显示传入文本,以确保我不会错过任何问题。我正在使用 p
我有一个带有表单的网站(目前它是纯 HTML,但我们正在切换到 JQuery)。流程是这样的: 接受用户的输入 --- 5 个整数 通过 REST 调用网络服务 在服务器端运行一些计算...并生成一个
假设我们有一个名为 configuration.js 的文件,当我们查看内部时,我们会看到: 'use strict'; var profile = { "project": "%Projec
这部分是对 Previous Question 的扩展我的: 我现在可以从我的 CI Controller 成功返回 JSON 数据,它返回: {"results":[{"id":"1","Sourc
有什么有效的方法可以删除 ios 中 CBL 的所有文档存储?我对此有疑问,或者,如果有人知道如何从本质上使该应用程序像刚刚安装一样,那也会非常有帮助。我们正在努力确保我们的注销实际上将应用程序设置为
我有一个 Rails 应用程序,它与其他 Rails 应用程序通信以进行数据插入。我使用 jQuery $.post 方法进行数据插入。对于插入,我的其他 Rails 应用程序显示 200 OK。但在
我正在为服务于发布请求的 API 调用运行单元测试。我正在传递请求正文,并且必须将响应作为帐户数据返回。但我只收到断言错误 注意:数据是从 Azure 中获取的 spec.js const accou
我是一名优秀的程序员,十分优秀!