Java中使用MongoTemplate 简单操作MongoDB

@Autowired

private MongoTemplate mongoTemplate;

User:封装的对象

插入:mongoTemplate.insert(user);

根据id查询:mongoTemplate.findById(id, User.class);

查询所有:mongoTemplate.findAll(User.class);

条件查询:

复制代码
Query query = new Query(
        Criteria.where("name").is("迪丽热巴")
        .and("age").is(25));
    List<User> userList = mongoTemplate.find(query, User.class);

模糊查询:

复制代码
 String name = "李";
    String regex = String.format("%s%s%s","^.*" , name , ".$");
    // 定义正则表达式 Pattern.CASE_INSENSITIVE 忽略大小写
    Pattern pattern = Pattern.compile(regex , Pattern.CASE_INSENSITIVE);
    Query query = new Query(Criteria.where("name").regex(pattern));

    List<User> userList = mongoTemplate.find(query, User.class);

分页查询:

复制代码
  Integer pageNum = 1;
  Integer pageSize = 3;
// skip跳过多少个,limit 需要查询多少
    List<User> userList = mongoTemplate.find(
        query.skip((pageNum - 1) * pageSize).limit(pageSize), User.class);

修改:

复制代码
@Test
void update() {
    User user = mongoTemplate.findById("456189465144321854", User.class);
    user.setName("张三");
    user.setAge(21);

    // where
    Query query = new Query(Criteria.where("_id").is("456189465144321854"));
    
    // 修改信息
    Update update = new Update()
        .set("name",user.getName()).set("age",user.getAge());
    UpdateResult updateResult = mongoTemplate.upsert(query, update, User.class);
    System.out.println(updateResult.getModifiedCount());
}

删除:

复制代码
@Test
void delete() {
    Query query = new Query(Criteria.where("name").is("张三"));
    DeleteResult deleteResult = mongoTemplate.remove(query, User.class);
    System.out.println(deleteResult.getDeletedCount());
}
相关推荐
十二同学啊1 小时前
向量数据库:从核心原理到 RAG 与 Java 实战
数据库
蓝速科技2 小时前
会议室门牌公告通知发布选型与落地指南丨蓝速科技
大数据·运维·数据库·人工智能·科技
一 乐5 小时前
二手交易平台|基于springboot + vue二手交易平台(源码+数据库+文档)
java·数据库·vue.js·spring boot·小程序
SelectDB5 小时前
同等资源下 Apache Doris 4.2 vs StarRocks 4.1.1:1TB SSB 与 TPC-H 性能实测
大数据·数据库·数据分析
这个DBA有点耶5 小时前
数据库集群与分布式架构:三条技术路线对比、金仓KES RAC实测数据与决策框架
数据库·程序员·架构
MayBaymax6 小时前
MongoDB 索引与事务
java·数据库·mongodb
SelectDB6 小时前
Doris vs ClickHouse:企业 OLAP 走向下一阶段,两种技术路线如何选择
大数据·数据库·数据分析
vx-程序开发6 小时前
【计算机毕设】django校园跑腿服务系统83141
java·数据库·vue.js·spring boot·spring·elasticsearch·django
&不羁之风&6 小时前
从 MySQL 到 MongoDB:80 万系统日志(sys_log)平滑迁移完整实战(含 Windows 环境 mongoimport 安装与避坑)
mysql·mongodb
一 乐6 小时前
养老院管理系统|基于springboot + vue养老院管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·毕业设计