当前位置: 首页 > 知识库问答 >
问题:

如何使用Spring数据将任意数据的子文档持久化到MongoDB?

韶兴德
2023-03-14

我试图在mongo数据库中插入一个文档(json字符串)。其中一个键“profile”的值是json字符串。所以,它基本上是一个嵌套的json结构。我知道可以通过滥用document类中的collection refs/one may关系来插入嵌套的json。

我在这里面临的问题是,嵌套部分的json结构不是固定的,因此不能抽象为java类,因为它是从社交网络API获取的自定义数据json。将“profile”定义为Java字符串会插入带有斜杠的概要文件数据,从而避开json数据中的双引号、花括号等。

有没有其他方法不把它投射到另一个物体上。

共有2个答案

仲智
2023-03-14

使用Map的答案对我来说有点不清楚...如何将任意JSON字符串转换为Map,以使Spring Data保持原样?

我发现使用“com.mongodb.DBObject”类型的属性是可行的。然后使用JSON设置属性。解析:

profile = (DBObject) JSON.parse(arbitraryJSONString)
孔和风
2023-03-14

要走的路可能是使配置文件aMap

 class MyDocument {

   Map<String, Object> profile;
 }

 类似资料:
  • /**若要更改此许可证标头,请在项目属性中选择许可证标头。*要更改此模板文件,请选择工具模板*并在编辑器中打开模板。*/ Edit:如果我使用saveAndFlush()强制写入,我将得到no transaction的错误:org.springframework.dao.invalidDataAccessapiusageException:no transaction正在进行;嵌套异常是javax

  • 问题内容: 我想创建一个作业,但是我想在没有任何数据库持久性的情况下运行它。不幸的是,spring-batch要求以某种方式将作业周期写入数据库,从而迫使我至少提供某种带有transactionmanager和Entitymanager的数据库。 是否可以防止元数据并独立于txmanagers和数据库运行? 更新: 问题答案: 我回到我自己的问题上,因为该解决方案不再起作用。从spring-bat

  • 我想创建一个作业,但我想在没有任何数据库持久性的情况下运行它。不幸的是spring-batch要求以某种方式将作业循环写入数据库的,从而使我至少提供某种带有transactionmanager和EntityManager的db。 是否可以阻止元数据并独立于TXManager和数据库运行? 更新:

  • 我开始使用Neo4j和Spring Data Neo4j的项目。我希望我的程序使用已经包含我的数据的本地数据库(而不是每次启动时加载数据),因为我有很多数据需要加载到数据库中。为了实现这个目标,我尝试设置一个用我的数据填充数据库的测试用例。但是,在我的测试完成后,数据库中的数据似乎不会持久:我使用neo4j控制台/shell查看数据库,发现它是空的。 我已经构建了一个小的例子项目,也不工作。任何对

  • 本文向大家介绍利用Spring Data MongoDB持久化文档数据的方法教程,包括了利用Spring Data MongoDB持久化文档数据的方法教程的使用技巧和注意事项,需要的朋友参考一下 前言 本文主要给大家介绍了关于利用Spring Data MongoDB持久化文档数据的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 介绍 NoSQL:not only SQ

  • 问题内容: 我的docker compose文件包含三个容器:web,nginx和postgres。Postgres看起来像这样: 我的目标是安装一个与postgres容器内称为的本地文件夹相对应的卷。当我启动这些容器并将数据插入到postgres中时,我验证了所添加数据的全部内容(在postgres容器中),但是在我的本地系统中,只在其中获得了一个文件夹,即已创建,但它为空。为什么? 笔记: 这