使用 spring 在 mongodb 中存储 JSON 模式

2023-11-23

我是 Spring 数据和 mongodb 的新手。我有一个代表 JSON 模式的 JSON 对象,我需要使用 spring 数据将其存储在 mongodb 中。但 JSON Schema 的问题是 JSON Schema 的结构是动态的;例如,下面是两个结构完全不同的有效 JSON 模式。

{
    "type": "object",
    "properties": {
        "name": {
            "type": "string",
            "minLength": 10
        },
        "age": {
            "type": "integer"
        }
    },
    "required": [
        "name",
        "age"
    ]
}

{
    "type": "array",
    "items": {
        "type": "object",
        "properties": {
            "abc": {
                "type": "boolean"
            },
            "xyz": {
                "$ref": "#/definitions/"
            },
            "asd": {
                "type": "null"
            }
        },
        "required": [
            "abc",
            "xyz"
        ]
    }
}

如何定义 JAVA POJO 类,以便可以将上面的 JSON 与定义的类映射并将其存储在 mongodb 中。或者是否可以在 spring 中进行 CURD 操作而不将其映射到 POJO 类?


我建议使用Mongo模板并使用序列化和反序列化Gson/Jackson.

Mongo 模板具有 CRUD 方法,它采用集合名称和 DBObject 实体,这与直接使用 mongo java 驱动程序非常相似。

因此,您将拥有 json 有效负载并使用映射器库之一将它们转换为Map.

就像是

反序列化

ObjectMapper mapper = new ObjectMapper(); 
TypeReference<HashMap<String,Object>> typeRef 
        = new TypeReference<HashMap<String,Object>>() {};
HashMap<String,Object> map = mapper.readValue(jsonpayload, typeRef); 

DBObject

DBObject dbObject = new BasicDBObject(map);

Mongo模板

mongoTemplate.save(dbObject, "collectionname");

您可以对所有其他 CRUD 操作执行类似的操作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 spring 在 mongodb 中存储 JSON 模式 的相关文章

  • 如何通过先前的选择填充下拉列表 Spring thymeleaf

    我需要根据之前的选择创建第二个下拉列表 基本上 用户需要选择放映 其他下拉列表必须显示所选放映的座位 我的控制器 RequestMapping movieDetail public String movieDetail PathParam
  • 如何在循环中添加 Thymeleaf 变量的值并在完成循环后显示最终值

    我正在设计产品账单 我想使用表格在 thymeleaf 模板中显示所有产品 最后 在循环外我想显示 thymeleaf 中所有产品的价格总和 我如何定义全局变量并执行它 table tr td td td td td Paid td td
  • 如何在 mongodb 中对数组进行 AND 查询?

    我有一个带有标签的数组 它是文档的一部分 例如 红 绿 蓝 白 黑 现在我想找到所有有红色和蓝色的文档 使用 all 条件查找同时匹配 红色 和 蓝色 条件的记录 db my collection find tags all red blu
  • 为什么 @Configuration 类中的 @Autowired 字段为 null?

    这是一个例子Spring 文档 http docs spring io spring docs 4 2 8 RELEASE spring framework reference htmlsingle spring core 第 6 12 5
  • Spring + Thymeleaf 自定义验证展示

    我一直在尝试让自定义 javax 验证工作 Spring Boot 和 Thymeleaf 但我不知道如何显示错误消息 问题似乎是 正常 错误 例如 Size NotNull 等 似乎会向绑定结果添加 FieldError 不过 我的自定义
  • 即使使用 noarg 插件,Kotlin 的 JPA 实体也没有默认构造函数

    我读到您需要kotlin maven noarg实体类的编译器插件 以便生成无默认参数的构造函数 但应用程序无法启动 并出现以下错误 实体没有默认构造函数 你能告诉我我做错了什么吗 pom xml
  • Spring - 以编程方式生成一组 bean

    我有一个 Dropwizard 应用程序 需要为配置列表中的每个配置生成十几个左右的 bean 诸如健康检查 石英调度程序等 像这样的事情 Component class MyModule Inject private MyConfigur
  • Mongoose 在结果的 _id 字段中返回“new ObjectId”

    当我尝试查询时 结果包含 id其中包含 new ObjectId 的字段 如何避免这种 new ObjectId 并仅将哈希值包含为字符串 由于此问题 将数据作为 JSON 响应发送回失败 下面是一个基本的demo 我的查询代码 book
  • 如何在聚合框架中按位置修改数组中的值

    假设有一个简单的文档 array a b c d 如何修改second值在聚合 With update这很简单 db collection updateOne set array 1 B gives array a B c d 在聚合框架中
  • 使用 MongoDB PHP 驱动程序时的安全问题

    我有在 MYSQL 上保护 sql 注入的经验 但是在使用 php 驱动程序的 MongoDB 上我应该注意什么 在大多数页面中 我通过 GET POST 和搜索 插入系统获取数据 我通过 UDID 其他字段进行搜索 并且可以插入任何字符串
  • Spring Hibernate 4 支持

    我正在使用 Hibernate 4 CR1 我的应用程序之前使用 Spring hibernate 支持 版本 3 我还没有找到任何相关信息 是否有任何迹象表明 Spring 何时 或哪个版本 将提供对 Hibernate 4 的支持 UP
  • 如何避免 mongodb 聚合框架中的 $pushing null

    如果该字段不存在 push 会聚合空值 我想避免这种情况 有没有办法为 push 运算符创建子表达式 以便跳过空值而不将其推入结果数组中 聚会有点晚了 但是 我想做同样的事情 发现我可以用这样的表达式来完成它 Pushes events o
  • mongodb对话系统

    我正在实施一个verymongodb 上的简单对话系统 这个想法应该是 当我打开一个 convo 时 它应该显示发送和接收的消息 到目前为止一切正常 并且应该非常容易 通过使用像这样的伪代码这样的简单查询 from my id AND to
  • Mongoose 5.x 不允许传递大量运算符

    聚合查询返回错误 Mongoose 5 x 不允许将操作符传递给Model aggregate 代替Model aggregate match skip do Model aggregate match skip 我正在使用 mongoos
  • node-mongodb-native MongoClient 意外关闭连接

    我一直在 mongodb 中搜索大量意外关闭的连接 但只能找到希望关闭连接的人提出的问题 我正在使用 node mongodb native 连接到数据库 但我不断收到看似随机的 错误 连接已关闭 消息 如果我手动重试请求 浏览器刷新 则请
  • mongoose 查询:通过 id 在数组中查找对象

    我怎样才能在此 Schema 中通过 id 找到图像 我有用户的 id 和我正在寻找的图像的 id 执行此操作的最佳方法是什么 在这种情况下 所有图像是否具有不同的 id 或者它们是否可以具有相同的 id 因为它们不属于同一用户 我的架构如
  • 如何在 JdbcTemplate 中创建 mySQL 存储过程

    背景 为了解决 MySql 中某些语句只允许在存储过程中出现的问题 我尝试在 JdbcTemplate 提交的 sql 中创建 运行然后删除存储过程 一个简单的例子是 这恰好是在 Spring Boot 中 Service public c
  • 如何允许Spring Boot中启用CORS的所有请求?

    In my 弹簧靴应用程序 目前我有这样的课程 SpringBootApplication public class TestApplication public static void main String args SpringApp
  • MongoDb 如何按月和年聚合

    我是 mongodb 新手 正在尝试学习 MongoDB 查询 id ObjectId 59815d4704ca1760a45957ca userEmail email protected cdn cgi l email protectio
  • Spring Boot 访问 H2 控制台

    我有一个基本的 Spring Boot 应用程序 嵌入式 Tomcat Thymeleaf 模板引擎 我创建了这个 bean 来访问控制台 Bean public ServletRegistrationBean h2ConsoleServl

随机推荐