一.引入jar包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
二.引入工具类
import java.util.regex.Pattern;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
@Autowired
private MongoTemplate mongoTemplate;
三.插入操作
Map data = new HashMap();
data.put("name","xiaoge");
data.put("sex","male");
String date = String.format("%1$tF %1$tT", new Date());
data.put("date",date);
mongoTemplate.insert(data,"why");
四.查询操作
1 排序
Query query = new Query();
query.with(new Sort(Sort.Direction.ASC,"date"))
List<Map> data = mongoTemplate.find(query,Map.class,"why");
2 精确查询
Query query = new Query();
query.addCriteria(Criteria.where("sex").is("male"));
List<Map> data = mongoTemplate.find(query,Map.class,"why");
3 模糊查询
Pattern pattern=Pattern.compile("^.*"+dateTime+".*$", Pattern.CASE_INSENSITIVE);
Query query = new Query();
query.addCriteria(Criteria.where("date").regex(pattern));
List<Map> data = mongoTemplate.find(query,Map.class,"why");
4 范围查询
//gte : >= ; lte : <= ; gt : > ; lt : <
Query query = new Query();
query.addCriteria(Criteria.where("date").gt("2019-01-11 14:05:01").lte("2019-01-11 14:09:53"));
List<Map> data = mongoTemplate.find(query,Map.class,"why");
5 分页 limit(size) skip(skipsize)
size:每页几条数据 ; skipsize: 跳过的数据条数
例如:每页size条数据.则第page页的数据为 query.limit(size).skip(size*(page-1))
Query query = new Query();
query.limit(3).skip(3*(4-1));
List<Map> data = mongoTemplate.find(query,Map.class,"why");
6 综合查询
Query query = new Query();
query.with(new Sort(Sort.Direction.ASC,"date"));
Pattern pattern=Pattern.compile("^.*"+"y"+".*$", Pattern.CASE_INSENSITIVE);
query.addCriteria(Criteria.where("sex").is("male").and("name").regex(pattern).
and("date").gt("2019-01-11 14:05:01").lte("2019-01-11 14:09:53"));
List<Map> data = mongoTemplate.find(query,Map.class,"why");
7 单条查询
Map data = mongoTemplate.findOne(query,Map.class,"why");
五.删除
Query query=new Query(Criteria.where("date").is("2019-01-11 14:14:05"));
long count = mongoTemplate.remove(query,Map.class,"why").getDeletedCount();
六.更新
Query query=new Query(Criteria.where("date").is("2019-01-11 14:13:38"));
Update update = Update.update("name","hhd").set("sex","animal");
mongoTemplate.updateFirst(query, update, Map.class,"why");