关于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作为一种高效的NoSQL数据库,逐渐成为了开发者的首选,本文将介绍如何使用MongoDB进行数据存储
    2025-01-01
  • mongodb中ObjectId和ObjectIdr实现

    mongodb中ObjectId和ObjectIdr实现

    本文主要介绍了mongodb中ObjectId和ObjectIdr实现
    2023-12-12
  • mac下安装和配置mongodb的步骤详解

    mac下安装和配置mongodb的步骤详解

    大家都知道MongoDB是一个跨平台的,面向文档的数据库,提供高性能,高可用性和可扩展性方便。那么下面这篇文章就来给大家介绍了关于在mac系统下安装和配置mongodb的方法步骤,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-07-07
  • MongoDB使用场景总结

    MongoDB使用场景总结

    这篇文章介绍了什么场景该用MongoDB,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-02-02
  • Mongodb UPDATE使用$sort将数组重新排序的示例代码

    Mongodb UPDATE使用$sort将数组重新排序的示例代码

    $sort方法在$push操作过程中,修改数组元素的排序,$sort方法,必须和$each共同使用,mongodb允许用户传递一个空的数组给$each方法,保证用户无须向数组中插入元素也可以将数组进行排序,本文给大家介绍了Mongodb UPDATE使用$sort将数组重新排序,需要的朋友可以参考下
    2024-06-06
  • mongodb数据库入门之CURD简单操作示例

    mongodb数据库入门之CURD简单操作示例

    这篇文章主要介绍了mongodb数据库入门之CURD简单操作,结合简单示例形式分析了MongoDB数据库基本的CURD增删改查相关操作技巧与注意事项,需要的朋友可以参考下
    2019-10-10
  • 使用aggregate在MongoDB中查询重复数据记录的方法

    使用aggregate在MongoDB中查询重复数据记录的方法

    这篇文章主要介绍了使用aggregate在MongoDB中查询重复数据记录的方法的相关资料,需要的朋友可以参考下
    2016-01-01
  • 解决mongodb在ubuntu下启动失败,提示couldn‘t remove fs lock errno:9 Bad file descriptor的错误

    解决mongodb在ubuntu下启动失败,提示couldn‘t remove fs lock errno:9 Bad

    之前MongoDB启动的时候是蛮正常的,不知道后来启动报错了,就把粘贴出来查询了。经过一番百度,才找的处理的办法,分享给大家
    2014-08-08
  • Mongodb索引的优化

    Mongodb索引的优化

    MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。接下来通过本文给大家介绍Mongodb索引的优化,本文介绍的非常详细,具有参考借鉴价值,感兴趣的朋友一起学习吧
    2016-02-02
  • MongoDB的备份与恢复

    MongoDB的备份与恢复

    这篇文章主要介绍了MongoDB的备份与恢复,帮助大家更好的理解和学习使用MongoDB,感兴趣的朋友可以了解下
    2021-03-03

最新评论