首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么Spring Boot和MongoRepository findById(...)是否将我的整数键设置为0?

Spring Boot是一个用于创建独立的、基于Spring框架的Java应用程序的开发框架。它简化了Spring应用程序的配置和部署过程,并提供了一系列开箱即用的功能和插件,使开发人员能够快速构建高效、可扩展的应用程序。

MongoRepository是Spring Data MongoDB提供的一个接口,用于简化与MongoDB数据库的交互。它提供了一组CRUD操作方法,包括findById(...)用于根据指定的主键查找文档。

在MongoDB中,文档的主键是一个特殊的字段,通常称为"_id"。如果没有显式指定主键值,MongoDB会自动生成一个唯一的主键值。对于整数类型的主键,默认情况下,MongoDB会将其设置为0。

这种行为是由MongoDB的自动生成主键策略决定的。当我们使用MongoRepository的findById(...)方法根据整数主键查找文档时,如果没有指定主键值,MongoDB会将其默认设置为0。这是MongoDB的默认行为,与Spring Boot和MongoRepository无关。

如果您希望将整数主键设置为其他值,可以在保存文档时显式指定主键值,或者使用其他自定义的主键生成策略。

总结起来,Spring Boot和MongoRepository并没有将您的整数键设置为0,而是MongoDB在没有显式指定主键值时的默认行为。如果您希望设置其他值作为主键,可以通过显式指定主键值或使用自定义的主键生成策略来实现。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

MongoDB

文档中的值不仅可以是在双引号里面的字符串,还可以是其他几种数据类型(甚至可以是整个嵌入的文档)。 MongoDB 区分类型和大小写。 MongoDB 的文档不能有重复的键。 文档的键是字符串。...除了少数例外情况,键可以使用任意 UTF-8 字符。 文档键命名规范: 键不能含有\0 (空字符)。这个字符用来表示键的结尾。 .和$有特别的意义,只有在特定环境下才能使用。...Min/Max keys 将一个值与 BSON(二进制的 JSON)元素的最低值和最高值相对比。 Arrays 用于将数组或列表或多个值存储为一个键。 Timestamp 时间戳。...,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而 -1 是用于降序排列。...> db.User.createIndex({"name":1}) 语法中 name 值为你要创建的索引字段,1 为指定按升序创建索引,如果你想按降序来创建索引指定为 -1 即可 五、Spring boot

4.7K20
  • 芋道 Spring Boot MongoDB 入门

    > { } 继承 org.springframework.data.mongodb.repository.MongoRepository 接口,第一个泛型设置对应的实体是 UserDO ,第二个泛型设置对应的主键类型是...因为实现了 MongoRepository 接口,Spring Data MongoDB 会自动生成对应的 CRUD 等等的代码。? 是不是很方便。 MongoRepository 类图如下: ?...艿艿:如果胖友看过艿艿写的 《芋道 Spring Boot JPA 入门》 文章,会发现和 Spring Data JPA 的使用方式,基本一致。...具体的,胖友可以自己跑跑,妥妥的。 3. 基于方法名查询 示例代码对应仓库:lab-16-spring-data-mongodb 。 在 《芋道 Spring Boot JPA 入门》 文章的「4....例如说: Spring Data JPA 的 JpaRepository 接口。 Spring Data MongoDB 的 MongoRepository 接口。

    2.6K10

    第五十一章:基于SpringBoot2 & MongoDB完成自动化集成本章目标为你推荐企业级核心技术学习专题准备MongDB构建项目测试总结

    为你推荐 第四十七章:SpringBoot2.0新特性 - Quartz自动化配置集成 第四十八章:SpringBoot2.0新特性 - RabbitMQ信任package设置 第四十九章:SpringBoot2.0...> 根据mongodb的依赖我们可以看到Spring家族式的设计,把所有操作数据的依赖都进行归类到spring-boot-starter-data-xxx下,我们比较常用到的如:spring-boot-starter-data-jpa...MongoRepository spring-boot-starter-data-mongodb确实采用了跟spring-boot-starter-data-jpa同样的方式来完成接口代理类的生成,并且提供了一些常用的单个对象操作的公共方法...password: 123456 在上面配置的uri内的test即为数据库的名称,username配置我们自定义的用户名称,password配置为自定义用户设置的密码。...上面我们的代码已经全部编写完成,接下来我们需要进行测试,来查看我们的CustomerRepository是否已经生效.

    1.1K30

    Spring Boot 2.x基础教程:使用MongoDB

    过了年,重申一下这个系列的目标:目前主要任务就是把Spring Boot 1.x部分没有升级的内容做完升级。...如果是您是Spring Boot的使用者,那么一定要关注一下!后面的内容会越来越精彩! 下面回归今天的主题,如何在Spring Boot中使用MongoDB!...MongoDB简介 MongoDB是一个基于分布式文件存储的数据库,它是一个介于关系数据库和非关系数据库之间的产品,其主要目标是在键/值存储方式(提供了高性能和高度伸缩性)和传统的RDBMS系统(具有丰富的功能...://name:pass@localhost:27017/test 在尝试此配置时,记得在mongo中对test库创建具备读写权限的用户(用户名为name,密码为pass),不同版本的用户创建语句不同...就笔者所接触的很多以往的使用场景也都开始在使用ES来取代,以获得更好的性能表现。所以,接下来我们会讲讲Spring Boot中如何使用ES,关注我,持续获得更多Spring Boot的技术干货!

    1.8K40

    SpringBoot学习笔记(十一:使用MongoDB存储文件 )

    1.1、添加依赖 spring-boot-starter-data-mongodb:用来操作MongoDB spring-boot-starter-thymeleaf:前端页面采用thymeleaf模板...对html元素格式要求严格,设置它的mode为HTML,忘记结束标签后不会报错 spring.thymeleaf.mode=HTML # 编码 spring.http.encoding.charset...的方式操作MongoDB,只需在接口里继承MongoRepository,就可以调用MongoRepository的内置方法。...2、MongoDB存储大文件 Spring Data MongoDB提供了GridFsOperations接口以及相应的实现GridFsTemplate,可以和GridFs交互。...文件存储服务器 【13】:MongoDB文件服务器搭建 【14】:基于 MongoDB 及 Spring Boot 的文件服务器的实现 【15】:SpringBoot中使用GridFS 【16】

    3.4K41

    Spring Boot 与 Kotlin 使用MongoDB数据库

    MongoDB简介 MongoDB是一个基于分布式文件存储的数据库,它是一个介于关系数据库和非关系数据库之间的产品,其主要目标是在键/值存储方式(提供了高性能和高度伸缩性)和传统的RDBMS系统(具有丰富的功能...但是,MongoDB也不是万能的,同MySQL等关系型数据库相比,它们在针对不同的数据类型和事务要求上都存在自己独特的优势。...引入依赖 Spring Boot中可以通过在pom.xml中加入spring-boot-starter-data-mongodb引入对mongodb的访问支持依赖。...:spring-boot-gradle-plugin:$spring_boot_version") // Kotlin整合SpringBoot的默认无参构造函数,默认把所有的类设置open...= 0) 实现User的数据访问对象:UserRepository import name.quanke.kotlin.chaper11_6_4.entity.User import org.springframework.data.mongodb.repository.MongoRepository

    1.7K50
    领券