如何使用 spring data mongodb mongotemplate 插入嵌入文档

2024-05-23

我需要在现有的事件文档中插入一个新的轨道,下面是我的类结构

class Event
{ 
    String _id; 
    List<Track> tracks;
}

class Track
{
    String _id;
    String title;
}

我现有的文档是

{
  "_id":"1000",
  "event_name":"Some Name"
}

插入后文档将如下所示

{
  "_id":"1000",
  "event_name":"Some name",  
  "tracks":
   [
     {
        "title":"Test titile",
     }

  ]
}

如何使用 mongoTemplate spring data mongodb 将该轨道插入到我现有的文档中?


首先,你必须注释Event与 一起上课@Document:

@Document(collection = "events")
public class Event
{
    // rest of code
}

添加事件的代码应如下所示:

@Repository
public class EventsDao {

    @Autowired
    MongoOperations template;

    public void addTrack(Track t) {
        Event e = template.findOne
            (new Query(Criteria.where("id").is("1000")), Event.class);

        if (e != null) {
            e.getTracks().add(t);
            template.save(e);
        }
    }
}

Note: 你应该改变一下Event的班级String _id; to String id;为了使该示例正常工作(或更改查询文字)。

Edit更新曲目也相当容易。假设您要更改第一首曲目的标题:

Event e = template.findOne(new Query(Criteria.where("_id").is("1000")), Event.class);
if (e != null) {
    e.getTracks().get(0).setTitle("when i'm 64");
    template.save(e);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 spring data mongodb mongotemplate 插入嵌入文档 的相关文章

  • 使用 Spring Java 配置自动装配 bean

    是否可以使用Spring的 Autowired用 Java 编写的 Spring 配置中的注释 例如 Configuration public class SpringConfiguration Autowired DataSource d
  • 为自定义 userdetailsservice 定义 bean

    我如何定义我的自定义UserDetailsServicebean 的方式使我的 spring mvc Web 应用程序能够使用我的底层 MySQL 数据库来检查用户和密码的身份验证 具体如下 我正在添加安全性spring petclinic
  • Tomcat 热部署到托管多个应用程序的实例

    我的问题是关于部署到托管多个应用程序并托管 Struts Spring 和 Hibernate 的应用程序上下文的 Tomcat 服务器实例 我想在不重新启动 Tomcat 服务器的情况下将更改部署到一个应用程序 举个例子 在我们公司很多时
  • MongoDB $geoIntersects 不适用于包含负顶点的多边形

    我已在数据库中存储了跨越 x 轴和 y 轴的多边形 并且我想搜索包含给定点的多边形 为此 我使用 geoIntersects 运算符来指定一个点 但是 当多边形穿过轴时 MongoDB 不会返回任何多边形 我可以对查询或架构进行任何小的更改
  • Spring Boot - 在部署时启动后台线程的最佳方式

    我在 Tomcat 8 中部署了一个 Spring Boot 应用程序 当应用程序启动时 我想在后台启动一个工作线程 Spring Autowires 具有一些依赖项 目前我有这个 SpringBootApplication EnableA
  • 异步 Spring MVC 控制器方法后记录响应正文

    我的 Spring MVC 应用程序中有以下内容 RestController public class SomeController GetMapping value csv produces text csv MediaType APP
  • Spring Security SAXParseException

    我正在 Spring 中开发 HelloWorld 应用程序 它工作正常 当我添加弹簧安全性时 问题就出现了 我正在通过 Spring Security 3 这本书来指导自己 部署时删除它 abr 26 2014 2 41 35 PM or
  • Mongoose 模型 update() 与 save()

    有一个关于问题update vs save https stackoverflow com questions 39010045 mongoose update vs save 但它针对的是一些不同的东西 我猜 纯粹相关mongoose S
  • JPA @Entity 内的 Bean 注入

    是否可以将bean注入到JPA中 Entity使用Spring的依赖注入 我尝试 Autowire ServletContext 但是 虽然服务器确实启动成功 但在尝试访问 bean 属性时收到 NullPointerException A
  • 如何使用电源模拟对 Spring Boot Rest 控制器和异常处理程序进行单元测试

    我有一个简单的 Spring boot 应用程序 其中包含 Employee 控制器 如果过去的年份大于 2014 年 则返回 Employee 姓名 如果年份不小于 2014 年 则我将抛出一个自定义异常并在异常处理程序中处理它 我想使用
  • Java MongoDB 获取子文档的值

    我试图从子文档中获取键的值 但我似乎无法弄清楚如何使用 BasicDBObject get 函数 因为键嵌入了两层深度 这是文档的结构 File name file 1 report name report 1 group RnD 基本上一
  • 无法连接到服务器 127.0.0.1:27017 连接尝试失败 MongoDB

    我正在使用 Ubuntu 操作系统 16 04 我正在使用命令启动 mongodb sudo service mongod start进而mongo 它为我生成了这个错误 MongoDB shell version v4 0 1 conne
  • AOP @Around:返回 BAD_REQUEST 响应

    在 Spring Rest 应用程序中 每个 URL 都必须以应用程序 ID appId 开头 必须在每个休息服务中验证此 appId 我没有重复代码 而是尝试使用 Around 建议创建 Aspect 这是在任何休息方法之前正确执行的 但
  • Spring Data JPA 的 @PersistenceConstructor 注释是否与 Hibernate 结合使用?

    我希望 Hibernate 使用另一个构造函数而不是空构造函数 因为我有一些逻辑应该在对象创建时执行 但取决于对象属性 我读了here https stackoverflow com questions 18099127 java enti
  • 如何使用 Stripe 在一次操作中创建客户和卡片?

    我正在尝试第一次初始化客户 我有一个表格 他们可以在那里注册和填写所有内容 然后他们提交 在客户端上 会发生以下情况 var cardValues AutoForm getFormValues credit card form insert
  • 使用 Spring Data MongoDB 查询纯 BSON

    是否可以在 Spring Data MongoDB 中查询纯 JSON BSON 数据 而无需将数据转换为实际的模型实现 我能找到的只是 MongoOperation 的
  • 在 spring-boot 中设置 base-href 和 context-path - Angular 6 应用程序

    我正在构建一个 Web 应用程序 其中 UI 客户端组件是使用 Angular 6 构建的 后端 服务器端 位于 Spring boot 上 申请预计可在 http localhost 8080 FUtility 我通过在 appmodul
  • AMQP Spring 集成错误处理

    我的集成流程如下所示 Bean public IntegrationFlow auditFlow Qualifier eventLoggingConnectionFactory ConnectionFactory connectionFac
  • Mongodump之后,调用MongoRestore挂起

    我们正在尝试在相对较小的数据库上做一个简单的 MongoDump 我们的步骤很简单 export 从目标机器上删除现有数据库 在目标机器上导入 MongoDump 完美执行 mongodump out root mongo prod DB
  • Pymongo 批量插入

    我正在尝试批量插入文档 但批量插入时不会插入超过 84 个文档 给我这个错误 in insert pymongo errors InvalidOperation cannot do an empty bulk insert 是否可以批量插入

随机推荐