- 最近在使用
MongDB
来作为持久层数据库,简单记一下基本的增删改查
基于
SpringBoot
开发
本地默认是没有密码直接配置数据库名字即可
spring:
data:
mongodb:
uri: mongodb://127.0.0.1:27017/demo
以下代码的Criteria类是MongoDB的条件构造器,下面就不做太多陈述
- 首先先注入
MongoTemplate
模板,里面有封装的增删改查方法
@Autowired
private MongoTemplate mongoTemplate;
- 查询数据 (
其实源码里写的还是比较清晰的,如果想查询其他信息可以去源码里找方法
)
public Map<String, Object> getUserList() {
Map<String, Object> modelMap = new HashMap<>();
//shiro要查询的集合名称,User是映射实体对象
List<User> userList = mongoTemplate.findAll(User.class, "shiro");
modelMap.put("userList", userList);
return modelMap;
}
- 根据Id查询或者某一个字段查询数据
public Map<String, Object> getUserByName(String id) {
Map<String, Object> modelMap = new HashMap<>();
//where后面的id对应的是数据库的字段
Query query = new Query(Criteria.where("id").is(id));
//"user"要查询的集合名称,User是映射实体对象
User user = mongoTemplate.findOne(query, User.class,"user");
modelMap.put("user", user);
return modelMap;
}
- 更新数据
- 更新的话比较麻烦,首先先
new
一个uptate
对象然后往里放入要修改的值
public Map<String, Object> updateFirst(User user) {
Map<String, Object> modelMap = new HashMap<>();
Query query = new Query(Criteria.where("id").is(user.getId()));
Update update = new Update().set("name", user.getName()).set("age", user.getAge());
//shiro要查询的集合名称,User是映射实体对象
UpdateResult updateResult = mongoTemplate.updateFirst(query, update, User.class, "shiro");
modelMap.put("updateResult", updateResult);
return modelMap;
}
- 添加数据
public Map<String, Object> saveUser(User user) {
Map<String, Object> modelMap = new HashMap<>();
// "user"要查询的集合名称,User是映射实体对象
mongoTemplate.save(user, "user");
return modelMap;
}