mongoTemplate方法

本文档详细介绍使用Spring Data MongoDB进行数据库操作的方法,包括插入、查询、更新和删除等核心功能,并提供具体示例帮助理解。
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));

 

 

 

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值