MongoTemplate 增删改查,or、and等复杂查询

https://blog.csdn.net/m0_37574389/article/details/89151777

1、查询(查询太多了,我就把比较常用的例举出来)

1.1、普通条件查询

Query query1=newQuery( Criteria.where("account").is("123456"));

List users = mongoTemplate.find(query1, User.class);

return users;

1.2、查询所有

List users = mongoTemplate.findAll( User.class);

System.out.println(users);

1.3、查询单条

Query query = new Query( Criteria.where("account").is("acafafg"));

User users = mongoTemplate.findOne(query, User.class);

System.out.println(users);

2、新增

2.1、新增

Useruser=newUser();

user.setAccount("1245");

user.setPassword("321");

mongoTemplate.save(user);

查询数据已经存在了


3、删除

他这个删除的主键要你自己在实体类中指定

@Id

privateString user_id;

删除逻辑

User user = new User();

user.setUser_id("5cab0fe89e09c41573833ad0");

mongoTemplate.remove(user);

4、修改

updateFirst 更新查询会返回结果集的第一条

Query query = new Query(Criteria.where("user_id").is("101887779542072"));

Update update = new Update().set("account", "1245").set("phone", "123");

mongoTemplate.updateFirst(query, update, User.class);

5、or 查询

我感觉这玩意才是最坑的,在官方文档中没找到,百度也没有找到一个有用的答案,自己搞了大半天才弄出来,坑货。。

在MongoTemplate 中 or 是用 orOperator表示的。

Criteria criteria = new Criteria();

criteria.orOperator(Criteria.where("phone").is("534289"),Criteria.where("account").is("534289"));

Query query1 = new Query(criteria);

List users = mongoTemplate.find(query1, User.class);

System.out.println(users);

6、and 查询

Query query = new Query(Criteria.where("account").is("1245").and("password").is("841136"));

List users = mongoTemplate.find(query, User.class);

还有很多的高级查询,可以进入 Criteria  这个类去看源码,

你可能感兴趣的:(MongoTemplate 增删改查,or、and等复杂查询)