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

 更新时间:2021年01月11日 10:00:47   作者:辛格爱编程  
这篇文章主要介绍了关于MongoTemplate通过id查询为null的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MongoDB中哪几种情况下的索引选择策略

    MongoDB中哪几种情况下的索引选择策略

    这篇文章主要给大家介绍了关于MongoDB中哪几种情况下的索引选择策略的相关资料,文中通过图文以及实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-01-01
  • MongoDB远程访问配置步骤详解

    MongoDB远程访问配置步骤详解

    MongoDB远程访问相信很多人都要到这个需求,所以这篇文章给大家主要介绍了MongoDB远程访问配置的步骤,文中给出了详细的步骤及示例代码,相信对大家的理解和学习很有帮助,有需要的朋友们下面来一起学习学习吧。
    2016-11-11
  • 关于CentOS 8 搭建MongoDB4.4分片集群的问题

    关于CentOS 8 搭建MongoDB4.4分片集群的问题

    在MongoDB里面存在另一种集群,就是分片技术,可以满足MongoDB数据量大量增长的需求。这篇文章主要介绍了CentOS 8 搭建MongoDB4.4分片集群的问题,需要的朋友可以参考下
    2021-10-10
  • mongodb在windows下的安装步骤分享

    mongodb在windows下的安装步骤分享

    MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的
    2011-10-10
  • 如何对 MongoDB 进行性能优化(五个简单步骤)

    如何对 MongoDB 进行性能优化(五个简单步骤)

    MongoDB一直是最流行的NoSQL,而根据DB-Engines Ranking最新的排行,时下MongoDB已经击败PostgreSQL跃居数据库总排行的第四位,仅次于Oracle、MySQL和Microsoft SQL Server。本文给大家介绍MongoDB性能优化的简单总结。
    2015-10-10
  • MongoDB的基础查询和索引操作方法总结

    MongoDB的基础查询和索引操作方法总结

    MongoDB使用JavaScript作为shell脚本,可以代替关系型数据库中的SQL语句完成查询操作,包括索引下的查询操作,这里我们就来整理MongoDB的基础查询和索引操作方法总结:
    2016-07-07
  • Windows系统下安装MongoDB与Robomongo环境详解

    Windows系统下安装MongoDB与Robomongo环境详解

    这篇文章主要给大家介绍了在Windows系统下安装MongoDB与Robomongo环境的相关资料,文中介绍的非常详细,相信对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-04-04
  • MongoDB中游标的深入学习

    MongoDB中游标的深入学习

    MongoDB中find()函数返回一个游标,客户端通过对游标进行一些设置就能对查询结果进行有效地控制,如可以限制查询得到的结果数量、跳过部分结果、或对结果集按任意键进行排序等!这篇文章主要介绍了MongoDB中的游标,有需要的朋友们可以参考借鉴,下面来一起看看吧。
    2016-12-12
  • MongoDB连接本地失败的原因及解决办法

    MongoDB连接本地失败的原因及解决办法

    这篇文章主要介绍了MongoDB连接本地失败解决办法,错误原因是没有启动mongo服务,所以启动失败,只要把mongo服务启动就好了,需要的朋友可以参考下
    2023-05-05
  • window下安装配置mongodb的教程图解

    window下安装配置mongodb的教程图解

    本文通过图文并茂的形式给大家介绍了window下安装配置mongodb的方法,需要的朋友可以参考下
    2018-02-02

最新评论