关于MongoTemplate通过id查询为null的问题
程序员文章站
2022-06-17 21:41:53
mongo的优势1. 它会把数据文件映射到内存中,如果是读操作,内存中的数据起到缓存的作用,如果是写操作,内存还可以把随机的写操作转换成顺序的写操作,总之可以大幅度提升性能。mongodb并不干涉内存...
mongo的优势
1. 它会把数据文件映射到内存中,如果是读操作,内存中的数据起到缓存的作用,如果是写操作,内存还可以把随机的写操作转换成顺序的写操作,总之可以大幅度提升性能。mongodb并不干涉内存管理工作,而是把这些工作留给操作系统的虚拟内存管理器去处理,这样做的好处是简化了mongodb的工作,但坏处是你没有方法很方便的控制mongodb占多大内存,幸运的是虚拟内存管理器的存在让我们多数时候并不需要关心这个问题。
2. mongodb的内存使用机制让它在缓存重建方面更有优势,简而言之:如果重启进程,那么缓存依然有效
配置:
spring.data.mongodb.uri=mongodb://test:123456@${ipaddr}:27017/mrqc?connecttimeoutms=10000&authsource=admin
版本:
<dependency> <groupid>org.springframework.data</groupid> <artifactid>spring-data-mongodb</artifactid> <version>2.2.0.release</version> </dependency>
错误实体类
mongoid设置为了string,需要设置为objectid类型
@data @document("user") public class user { @mongoid private string id; @field("username") private string username; }
正确实体类
@data @document("user") public class user { @mongoid private objectid id; @field("username") private string username; }
查询语句,如果mongoid类型为string那么就查询不出来,无论是直接使用
findbyid方法或者find(query)或者id传objectid对象,都是查不出来的,开始还以为配置错了,结果是因为mongo的id都是objectid无法对应上实体类中的string类型。改成objectid同样的语句就可以查询出来了
user user = mongotemplate.findbyid(new objectid(userid),user.class, "user");
到此这篇关于关于mongotemplate通过id查询为null的问题的文章就介绍到这了,更多相关mongotemplate查询为null内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
下一篇: golang 切片截取参数方法详解
推荐阅读
-
关于查询中查询无果,也不报错,inpout标签中的value属性为‘ ’的判断问题
-
关于ORACLE通过file_id与block_id定位数据库对象遇到的问题引发的思考
-
mybatis-plus的selectById(或者selectOne)在根据主键ID查询实体对象的时候偶尔会出现null的问题记录
-
关于MongoTemplate通过id查询为null的问题
-
关于MYSQL查询时WHERE条件值为数字的问题_MySQL
-
关于查询中查询无果,也不报错,inpout标签中的value属性为‘ ’的判断问题
-
关于MYSQL查询时WHERE条件值为数字的问题_MySQL
-
问题:Mysql中字段类型为text的值, java使用selectByExample查询为null
-
关于ORACLE通过file_id与block_id定位数据库对象遇到的问题引发的思考
-
mybatis-plus的selectById(或者selectOne)在根据主键ID查询实体对象的时候偶尔会出现null的问题记录