mongoTempalte 使用方法详解(SpringBoot 2.0)

mongoTempalte 使用方法详解(SpringBoot 2.0)

mongoTempalte 查询功能

说到查询是非常重要而且非常常用的,我们首先要明白Spring是怎么查询的。
这就要说到两个类:

  1. Query
  2. Criteria

Criteria是标准查询的接口,可以引用静态的Criteria.where的把多个条件组合在一起,就可以轻松地将多个方法标准和查询连接起来,方便我们操作查询语句。

例如:我们要查询 id为110 的一条数据。

Query query = new Query(Criteria.where("id").is(110));

这就是简单的一条sql;我们直接调用Criteria.where静态方法就可以直接查询 “等于”

当我们多个条件组合查询时:

例如:我们要查询:id=1 and name="小王"

Query query =new Query(Criteria.where("id").is(1).and("name").is("小王"));

例如:我们要查询:id=1 or name="小王"

Query query =new Query(new Criteria().orOperator(Criteria.where("id").is(1),Criteria.where("name").is("小王")));

Criteria提供了很多方法,我们这边介绍基本文档的查询操作符

mongoTempalte 使用方法详解(SpringBoot 2.0)_第1张图片
mongoTempalte 使用方法详解(SpringBoot 2.0)_第2张图片

         * 添加文档主要介绍两种方式:
         *  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 var1, Class var2);  下面三个方法是批量插入的实现方法
         *          6.void insert(Collection var1, String var2);
         *          7.void insertAll(Collection var1);
         * 查询mongodb的操作:
         *      find 和findone方法都有两种实现
         *          1.List find(Query var1, Class var2)               不指定集合名
         *          2.List find(Query var1, Class var2, String var3)  指定集合名
         *          3. T findOne(Query var1, Class var2);             不指定集合名
         *          4. T findOne(Query var1, Class var2, String var3);指定集合名
         *           eg。
         *              maxvalue在数据库中就对应一个集合,可以不指定集合名直接查询
         *              Sl6512014 在数据对应很多集合  必须知道集合名才能查询出数据
         *
         *        findall
         *              1. List findAll(Class var1);   根据类型查询所有
         *              2. List findAll(Class var1, String var2);  查询集合下的该类型数据
         *
         *       findById:
         *               T findById(Object var1, Class var2);                 var1  是mongodb的_id子段值
         *               T findById(Object var1, Class 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);                 指定集合名进行删除
         *  其他一些操作:简单介绍:
         *          //查询出后删除
         *             List findAllAndRemove(Query var1, String var2);    指定集合名
                       List findAllAndRemove(Query var1, Class var2);   指定类型
                       List findAllAndRemove(Query var1, Class var2, String var3); 在集合下查询删除的类型数据
                    //查处后修改
                      T findAndModify(Query var1, Update var2, Class var3);    指定修改类型
                      T findAndModify(Query var1, Update var2, Class var3, String var4);  在集合下修改的数据类型
                      T findAndModify(Query var1, Update var2, FindAndModifyOptions var3, Class var4);
                      T findAndModify(Query var1, Update var2, FindAndModifyOptions var3, Class var4, String var5);
                      T findAndRemove(Query var1, Class var2);
                      T findAndRemove(Query var1, Class var2, String var3);
                    //判断是否存在
                     boolean exists(Query var1, String var2);
                     boolean exists(Query var1, Class var2);
                     boolean exists(Query var1, Class var2, String var3);

你可能感兴趣的:(Spring,Boot)