SpringBoot与mongoDB查询


前言

来自博主的碎碎念:今天在翻之前的工作总结,就想着那就写篇mongoDB和SpringBoot的使用总结吧!


提示:以下是本篇文章正文内容,下面案例可供参考

一、mongoDB是什么?

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

二、mongoDB的优点

1.mongodb数据存储以BSON/JSON文档进行存储;
2.mongodb能够进行数据库扩展,拥有可扩展性;
3.能够进行镜像复制;
4.使用mongodb查询速度比较快;
5.mongodb能够降低受到SQL注入攻击的危险;
6.支持mongodb的用户多;
7.mongodb是免费的。

三、SpringBoot中代码应用

1.首先有很重要的两个类

Criteria类:封装所有的语句,以方法的形式进行查询。
Query类:将语句进行封装或者添加排序之类的操作。

2.常用的方法

(1)andOperator:等同$and,并且(a && b);
(2)orOperator:等同$or,或者(a || b);
(3)gt:等同$gt,大于;
(4)gte:等同$gte,大于等于;
(5)in:等同$in,包含;
(6)nin:等同$nin,不包含;
(7)is:等同$is,等于;
(8)lt:等同$lt,小于;
(9)lte:等同$lte,小于等于;
(10)regex:模糊查询:.regex(".*?" +condition.getValue().toString()+ ".*";
(11)url.id:分级查询:Criteria.where("url.id").is(id);
(12)not:查询字段不存在的数据:Criteria.where("key").not();
(13)ne:查询字段不为空的数据:Criteria.where("key").ne("").ne(null);
(14)count:查询数量:count(query, Info.class);
(15)更新一条数据的一个字段:Update.update("updateTime", info.getUpdateTime()), Info.class);
(16)删除数据:remove(new Query(Criteria.where("id").is(id)),clazz);
(17)排序:query.with(new Sort(new Sort.Order(Direction.DESC, "updateTime")));

总结

以上就是今天要讲的内容,本文仅仅简单介绍了mongoDB在SpringBoot的使用,后续有更好的想法再更新~


╭◜◝ ͡ ◜◝╮
( ˃̶͈◡˂ ̶͈ )感觉有用的话,欢迎点赞评论呀!
╰◟◞ ͜ ◟◞╯

Spring Boot 中集成 MongoDB 时,可以通过 MongoDB查询功能来查询内嵌的 List。MongoDB 支持多种查询方式,其中 MongoDB Java 驱动提供了丰富的操作类,比如 `Criteria`、`Query` 等,可以帮助我们构建复杂的查询条件。 对于内嵌 List 的查询MongoDB 提供了两种主要的查询方式:点表示法和数组操作符。 1. 点表示法:当你知道 List 中具体的元素时,可以使用点表示法来精确匹配。例如,如果你有一个文档结构如下: ```json { "name": "张三", "hobbies": ["阅读", "旅游"] } ``` 如果你想查询 `hobbies` 中包含 "阅读" 的文档,可以使用以下代码: ```java import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.MongoTemplate; // ... @Autowired private MongoTemplate mongoTemplate; public List<User> findUsersWithHobby(String hobby) { Query query = new Query(Criteria.where("hobbies").is(hobby)); return mongoTemplate.find(query, User.class); } ``` 2. 数组操作符:对于 List 中的元素进行模糊查询或者特定条件查询,可以使用 `$all`、`$in` 等操作符。 - 使用 `$all` 查询 List 中包含所有指定元素的文档: ```java Query query = new Query(Criteria.where("hobbies").all("阅读", "旅游")); ``` - 使用 `$in` 查询 List 中包含任一指定元素的文档: ```java Query query = new Query(Criteria.where("hobbies").in("阅读", "写作")); ``` 结合 Spring Data MongoDB 的强大功能,你可以很容易地构建复杂的查询,并将它们应用到你的应用程序中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柚子猫屿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值