一、MongoTemplate操作常用的类
Criteria类:它封装所有的语句,以方法的形式进行查询。
Query类:这是将语句进行封装或者添加排序之类的操作。
二、Mongodb集合定义案例
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;
@Document(collection = "collection_name")
public class UserPO {
@Indexed
@Field("user_id")
private Long userId;
@Field("username")
private String username;
@Field("password")
private String password;
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
注:
- @Document 用来表明关联的mongo中的那个collection(类似于表名)
- @Indexed 为某个字段建立索引
- @Field 声明属性对应的数据库中的哪个字段
三、MongoTemplate操作mongodb数据库案例
//插入一条
UserPO userPO = new UserPO();
userPO.setUserId(1L);
userPO.setUsername("username");
userPO.setPassword("password");
mongoTemplate.insert(userPO);
//插入多条
LinkedList<UserPO> pos = Lists.newLinkedList();
UserPO userPO = new UserPO();
userPO.setUserId(1L);
userPO.setUsername("username");
userPO.setPassword("password");
pos.add(userPO);//集合中可以放多个
mongoTemplate.insertAll(pos);
//删除
Query query=new Query(Criteria.where("_id").is(id));
mongoTemplate.remove(query,UserPO.class);
//更新
Query query=new Query(Criteria.where("_id").is(id));
Update update = Update.update("要更新的字段", "更新的值");
mongoTemplate.updateFirst(query, update, UserPO.class);
//查找
//分页查询
Query query = new Query();
query.skip("跳过的数据条数").limit("一页的数据条数");
return mongoTemplate.find(query, UserPO.class);
//条件查询1,多条件is("值")后面可以加and("字段2").is("值2")
Query query=new Query(Criteria.where("字段1").is("值1"));
return mongoTemplate.find(query, UserPO.class);
参考文献: