1.准备PO对象
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;
/**
* @author
* @createTime 2017/9/25
* @description //@Document用来表明关联的mongo中的那个collection(类似于表名)
*/
@Document(collection = "collection_name")
public class UserPO {
@Indexed //@Indexed 为某个字段建立索引
@Field("user_id") //@Field 声明属性对应的数据库中的哪个字段
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;
}
}
插入数据
//插入一条
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();
query.addCriteria(Criteria.where("user_id").is(1L));
mongoTemplate.findAndRemove(query,UserPO.class);
更改数据
更改的API大概有这些
- updateMulti 如果根据查询条件找到对应的多条记录是,全部更新
- updateFirst 更改符合条件的第一个
- upsert 顾名思义 update+insert 如果根据条件没有对应的数据,则执行插入
- findAndModify 查询然后更新
演示findAndModify:
Query query = new Query();
query.addCriteria(Criteria.where("user_id").is(1L));
Update update = new Update();
update.set("username","the new username");
mongoTemplate.findAndModify(query,update,UserPO.class);
查询
Query query = new Query();
query.addCriteria(Criteria.where("user_id").is(1L));
List<UserPO> userPOS = mongoTemplate.find(query, UserPO.class);