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提供了很多方法,我们这边介绍基本文档的查询操作符

在这里插入图片描述
在这里插入图片描述

         * 添加文档主要介绍两种方式:
         *  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);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值