主页 > 知识库 > 关于MongoTemplate通过id查询为null的问题

关于MongoTemplate通过id查询为null的问题

热门标签:河南电话外呼系统招商 呼和浩特外呼系统原理是什么 外呼线路资源属于电信业务吗 crm外呼系统联系方式 青白江400企业电话申请 内蒙古营销智能外呼系统哪个好 长沙电销外呼防封卡是什么 小裙科技电销机器人怎样 智能外呼系统官网

Mongo的优势

1. 它会把数据文件映射到内存中,如果是读操作,内存中的数据起到缓存的作用,如果是写操作,内存还可以把随机的写操作转换成顺序的写操作,总之可以大幅度提升性能。MongoDB并不干涉内存管理工作,而是把这些工作留给操作系统的虚拟内存管理器去处理,这样做的好处是简化了MongoDB的工作,但坏处是你没有方法很方便的控制MongoDB占多大内存,幸运的是虚拟内存管理器的存在让我们多数时候并不需要关心这个问题。

2. MongoDB的内存使用机制让它在缓存重建方面更有优势,简而言之:如果重启进程,那么缓存依然有效

配置:

spring.data.mongodb.uri=mongodb://test:123456@${ipAddr}:27017/mrqc?connectTimeoutMS=10000authSource=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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
  • Spring Boot之搞定mongoTemplate的知识小结
  • Node.js使用MongoDB的ObjectId作为查询条件的方法
  • PHP库 查询Mongodb中的文档ID的方法
  • python操作mongodb根据_id查询数据的实现方法
  • java查询mongodb中的objectid示例

标签:白山 安顺 池州 呼伦贝尔 楚雄 菏泽 黄石 舟山

巨人网络通讯声明:本文标题《关于MongoTemplate通过id查询为null的问题》,本文关键词  关于,MongoTemplate,通过,查询,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《关于MongoTemplate通过id查询为null的问题》相关的同类信息!
  • 本页收集关于关于MongoTemplate通过id查询为null的问题的相关信息资讯供网民参考!
  • 推荐文章