API网址:
https://docs.spring.io/spring-data/mongodb/docs/current/api/index.html?org/springframework/data/mongodb/core/MongoTemplate.html/** * 添加文档主要介绍两种方式: * mongoTemplate.insert("实体对象","集合名"); 往集合插入数据的方式 * mongoTemplate.save(对象,集合名(可省略)); 参数必须是对象 * insert和save都适用 * 不写集合名,默认对象类名作为集合名(如实体类是A 集合名是a) * 写集合名,则把数据写到对应集合下 * 1.void save(Object var1); 传入对象,不传集合名 * 2.void save(Object var1, String var2); 传入对象,传集合名 * 3.void insert(Object var1); 传入对象,不传集合名 * 4.void insert(Object var1, String var2); 传入对象,传集合名 * 5.void insert(Collection<? extends Object> var1, Class<?> var2); 下面三个方法是批量插入的实现方法 * 6.void insert(Collection<? extends Object> var1, String var2); * 7.void insertAll(Collection<? extends Object> var1); * 查询mongodb的操作: * find 和findone方法都有两种实现 * 1.List<T> find(Query var1, Class<T> var2) 不指定集合名 * 2.List<T> find(Query var1, Class<T> var2, String var3) 指定集合名 * 3.<T> T findOne(Query var1, Class<T> var2); 不指定集合名 * 4.<T> T findOne(Query var1, Class<T> var2, String var3);指定集合名 * eg。 * maxvalue在数据库中就对应一个集合,可以不指定集合名直接查询 * Sl6512014 在数据对应很多集合 必须知道集合名才能查询出数据 * * findall * 1.<T> List<T> findAll(Class<T> var1); 根据类型查询所有 * 2.<T> List<T> findAll(Class<T> var1, String var2); 查询集合下的该类型数据 * * findById: * <T> T findById(Object var1, Class<T> var2); var1 是mongodb的_id子段值 * <T> T findById(Object var1, Class<T> var2, String var3); 指定集合名 * 更新操作: * updateFirst 更新符合条件的第一条 updateMulti 更新多个,符合条件都会更改 * //修改第一条符合条件数据 * 1.WriteResult updateFirst(Query var1, Update var2, Class<?> var3); 指定类型 * 2.WriteResult updateFirst(Query var1, Update var2, String var3); 更新操作指定集合名 * 3.WriteResult updateFirst(Query var1, Update var2, Class<?> var3, String var4); 详细指定类型和集合名 * //批量修改 * 4.WriteResult updateMulti(Query var1, Update var2, Class<?> var3); 指定类型 * 5.WriteResult updateMulti(Query var1, Update var2, String var3); 指定集合名 * 6.WriteResult updateMulti(Query var1, Update var2, Class<?> var3, String var4); 详细指定类型和集合名 * //同updateFirst * 7.WriteResult upsert(Query var1, Update var2, Class<?> var3); * 8.WriteResult upsert(Query var1, Update var2, String var3); * 9.WriteResult upsert(Query var1, Update var2, Class<?> var3, String var4); * 删除操作: * 1.WriteResult remove(Object var1); * 2.WriteResult remove(Object var1, String var2); * 3.WriteResult remove(Query var1, Class<?> var2); 根据条件删除 * 4.WriteResult remove(Query var1, Class<?> var2, String var3); 详细指定类型和集合名进行删除 * 5.WriteResult remove(Query var1, String var2); 指定集合名进行删除 * 其他一些操作:简单介绍: * //查询出后删除 * <T> List<T> findAllAndRemove(Query var1, String var2); 指定集合名 <T> List<T> findAllAndRemove(Query var1, Class<T> var2); 指定类型 <T> List<T> findAllAndRemove(Query var1, Class<T> var2, String var3); 在集合下查询删除的类型数据 //查处后修改 <T> T findAndModify(Query var1, Update var2, Class<T> var3); 指定修改类型 <T> T findAndModify(Query var1, Update var2, Class<T> var3, String var4); 在集合下修改的数据类型 <T> T findAndModify(Query var1, Update var2, FindAndModifyOptions var3, Class<T> var4); <T> T findAndModify(Query var1, Update var2, FindAndModifyOptions var3, Class<T> var4, String var5); <T> T findAndRemove(Query var1, Class<T> var2); <T> T findAndRemove(Query var1, Class<T> var2, String var3); //判断是否存在 boolean exists(Query var1, String var2); boolean exists(Query var1, Class<?> var2); boolean exists(Query var1, Class<?> var2, String var3);
/**
* is相当于等于
* in相当于sql中的in
* ne相当于不等于
* orOperator接受多个条件,组成or逻辑 addOperator同理
* Criteria.where("author").is("mongodb") author = mongodb的数据
* Criteria.where("serial").lte(500).and("st").is("1703230781").and("c").in("5.7") 多条件的查询
* Criteria.where("st").exists(true) 判断这个字段存在
* Criteria.where("serial").ne(1) 不等于1的数据
* Criteria.where("serial").nin(1) nin 不在这个范围中
* Criteria.where("serial").is(3).orOperator().is().andOperator() 追加or条件或者and条件
* Criteria.where("a").regex("1") 模糊查询 可以用正则表达式
* query6.with(new Sort(Sort.Direction.DESC,"a")); 按照a字段把结果降序
* query6.skip(n); 跳过结果集的第n个 超过总条数就是啥都不输出 n<=0 时 查询到结束不跳过
* query6.skip(n).limit(m) 跳过n条并显示m条记录
* query6.addCriteria(Criteria.where("b").is("11")); 再加条件 查询子段不能是上一个query查询过的子段
* query6.maxScan(6).skip(-2); 先截取六条数据再跳过两条
* */
分页查询 query.with(new PageRequest(1, 5));