SpringBoot MongoTemplate的基本使用方法
MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
·
一、什么是MongoDB
MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。
在高负载的情况下,添加更多的节点,可以保证服务器性能。
MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。
{
name:"张三",
age:"18"
}
二、pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
三、application.yml
spring:
data:
mongodb:
host: 127.0.0.1(IP地址)
port: 27017(端口)
database: local(mongo的数据库名)
auto-index-creation: true
username: local(自定义账号)
password: 123456(自定义密码)
四、MongoTemplate的基本方法
1.在service层注入MongoTemplate
@Resource
private MongoTemplate mongoTemplate;
2.查询接口
//在USER实体类中设置在mongo中的集合名
public static final String USER_COLLECTION = "USER_INFO";
//查询name=张三
Query query = Query.query(Criteria.where("name").is("张三"));
mongoTemplate.find(query,User.class);
mongoTemplate.find(query,User.class,User.USER_COLLECTION);
//查询所有
mongoTemplate.findAll(User.class);
mongoTemplate.findAll(User.class,User.USER_COLLECTION);
//分页查询 page页码,pageSize每页展示个数
Pageable pageable = PageRequest.of(page - 1, pageSize, Sort.by(Sort.Order.desc("createTime")));
Query query = new Query().with(pageable);
return mongoTemplate.find(query, User.class,User.USER_COLLECTION);
//查询多个
Query query= Query.query(Criteria.where("id").in("id1","id2","id3")).with(Sort.by(Sort.Order.desc("createTime")));
List<Publish> list= mongoTemplate.find(query, User.class);
//查询数量
Criteria criteria = Criteria.where("userId").is("1")
.and("name").is(new ObjectId("张三"))
.and("age").is("18");
Query query = Query.query(criteria);
long count = mongoTemplate.count(query, User.class);
3.插入接口
//在USER实体类中设置在mongo中的集合名
public static final String USER_COLLECTION = "USER_INFO";
User user= new User();//
user.setName("张三");
user.setAge("18");
//保存对象到mongodb
mongoTemplate.save(user);
mongoTemplate.insert(user);
//根据集合名称保存对象到mongodb
mongoTemplate.save(user,USER.USER_COLLECTION);
mongoTemplate.insert(user,USER.USER_COLLECTION);
List<User> list = new ArrayList<>();
list.add(user);
//根据集合名称保存list到mongodb
mongoTemplate.save(list,USER.USER_COLLECTION);
mongoTemplate.insert(list,USER.USER_COLLECTION);
mongoTemplate.insert(list,User.class);
4.更新接口
//在USER实体类中设置在mongo中的集合名
public static final String USER_COLLECTION = "USER_INFO";
User user = new User();
user.setId("619afb08ad3ba21a68aae808");
user.setName("张三");
user.setAge("18");
Query query = Query.query(Criteria.where("_id").is("619afb08ad3ba21a68aae808"));
Update update = Update.update("name","张三");
//更新一条数据
mongoTemplate.updateFirst(query, update, User.class);
mongoTemplate.updateFirst(query, update, USER.USER_COLLECTION);
mongoTemplate.updateFirst(query, update, USER.USER_COLLECTION);
//更新多条数据
mongoTemplate.updateMulti(query, update, User.class);
mongoTemplate.updateMulti(query, update, USER.USER_COLLECTION);
mongoTemplate.updateMulti(query, update, User.class, USER.USER_COLLECTION);
//更新数据,如果数据不存在就新增
mongoTemplate.upsert(query,update, User.class);
mongoTemplate.upsert(query,update, USER.USER_COLLECTION);
mongoTemplate.upsert(query,update, User.class, USER.USER_COLLECTION);
5.删除接口
//在USER实体类中设置在mongo中的集合名
public static final String USER_COLLECTION = "USER_INFO";
List<MongoDbJavaTest> list = new ArrayList<>();
User user= new User();
user.setId("619afb08ad3ba21a68aae808");
list.add(user);
Query query = Query.query(Criteria.where("_id").in("619afb08ad3ba21a68aae808","619afb08ad3ba21a68aae809"));
//根据条件删除
mongoTemplate.remove(query);
mongoTemplate.remove(user);
mongoTemplate.remove(User.class);
//根据条件删除(可删除多条)
mongoTemplate.remove(query,User.class,USER.USER_COLLECTION);
更多推荐
所有评论(0)