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());
}
相关推荐
你的微笑,乱了夏天32 分钟前
linux centos 7 安装 mongodb7
数据库·mongodb
工业甲酰苯胺43 分钟前
分布式系统架构:服务容错
数据库·架构
独行soc2 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍08-基于时间延迟的SQL注入(Time-Based SQL Injection)
数据库·sql·安全·渗透测试·漏洞挖掘
White_Mountain2 小时前
在Ubuntu中配置mysql,并允许外部访问数据库
数据库·mysql·ubuntu
Code apprenticeship2 小时前
怎么利用Redis实现延时队列?
数据库·redis·缓存
百度智能云技术站2 小时前
广告投放系统成本降低 70%+,基于 Redis 容量型数据库 PegaDB 的方案设计和业务实践
数据库·redis·oracle
装不满的克莱因瓶2 小时前
【Redis经典面试题六】Redis的持久化机制是怎样的?
java·数据库·redis·持久化·aof·rdb
梦想平凡4 小时前
PHP 微信棋牌开发全解析:高级教程
android·数据库·oracle
TianyaOAO4 小时前
mysql的事务控制和数据库的备份和恢复
数据库·mysql
Ewen Seong4 小时前
mysql系列5—Innodb的缓存
数据库·mysql·缓存