【开发篇】八、SpringBoot整合MongoBD

news2024/11/28 7:49:47

文章目录

  • 1、整合
  • 2、简单示例
  • 3、一点思考
  • 4、MongoDB的安装
  • 5、MongoDB的CRUD语法

1、整合

导入MongoBD的起步依赖:(这个starter背后是MongoDB的驱动和其他依赖,在这儿也可以看出命名的规律,redis的就是spring-boot-starter-data-redis)

<dependency>    
	<groupId>org.springframework.boot</groupId>  
	<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

书写相关配置:

# 只写URI即可操作数据库,其余细节配置自行添加
spring:  
  data:    
    mongodb:      
      uri: mongodb://localhost/testDB

在需要操作数据的地方注入MongoTemplate对象

@Autowired
MongoTemplate mongoTemplate;

2、简单示例

调用指令对应的方法或API完成CRUD:

@Test
void testSave(@Autowired MongoTemplate mongoTemplate){

    Book book = new Book();     
    
    mongoTemplate.save(book);

}

@Test
void testFind(@Autowired MongoTemplate mongoTemplate){

    List<Book> all = mongoTemplate.findAll(Book.class);  
     
    System.out.println(all);
    
}

3、一点思考

到这儿,可以发现,关于SpringBoot整合第三方技术框架,实现步骤可以抽象出以下几步:

  • 引入相关的依赖或者起步依赖
  • application.yaml中写配置(在配置文件中直接输入关键字来找可能的配置
  • 使用封装好的工具对象或Bean来完成操作,如JdbcTemplate、RedisTemplate、MongoTemplate…

此时,就可(在UT中)进行简单的试运行,若出错,分析报错信息,从中找解决思路即可。

4、MongoDB的安装

这里简单整理下MongoDB的基本知识,后续专门学习MongoDB了再写笔记。

MongoDB是一个开源、高性能、无模式文档型数据库。NoSQL数据库产品中的一种,是最像关系型数据库的非关系型数据库

安装只写Windows下的,Linux的yum或者docker启动等后续学习时再整理:

  • 下载
https://www.mongodb.com/try/download
  • 进入解压缩后的目录新建一个数据目录,如:/data/db

  • 启动Mongo服务端,首次会有一个初始化的动作

mongod --dbpath=..\data\db
  • 客户端连接Mongo
mongo --host=127.0.0.1 --port=27017

最后,Windows下安装Mongo可能有以下报错:

在这里插入图片描述

报错的原因是你当前的操作系统是阉割版的操作系统,即缺少相关dll文件,解决方法为:

  • 下载对应的dll文件(通过互联网搜索即可)
  • 拷贝到windows安装路径下的system32目录中
  • 执行命令以下注册对应dll文件
regsvr32 vcruntime140_1.dll

5、MongoDB的CRUD语法

以下的集合名称,集合即其他数据库中的table:

  • 新增
db.集合名称.insert/save/insertOne(文档)
  • 修改
db.集合名称.update(条件,{操作种类:{文档}})
  • 删除
db.集合名称.remove(条件)
  • 基础查询
查询全部:db.集合.find();

查第一条:db.集合.findOne()

查询指定数量文档:db.集合.find().limit(10)		//查10条文档

跳过指定数量文档:db.集合.find().skip(20)		//跳过20条文档

统计:db.集合.count()

排序:db.集合.sort({age:1})				//按age升序排序

投影:db.集合名称.find(条件,{name:1,age:1})		//仅保留name与age域

  • 条件查询
基本格式:db.集合.find({条件})

模糊查询:db.集合.find({域名:/正则表达式/})		//等同SQL中的like,比like强大,可以执行正则所有规则

条件比较运算:db.集合.find({域名:{$gt:}})		//等同SQL中的数值比较操作,例如:name>18

包含查询:db.集合.find({域名:{$in:[1,值2]}})		//等同于SQL中的in

条件连接查询:db.集合.find({$and:[{条件1},{条件2}]})	//等同于SQL中的and、or

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1042045.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【数据结构-图】并查集

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…

接口测试主要测试哪方面?需要哪些技能?要怎么学习?

1、什么是接口测试&#xff1f; 定义&#xff1a;测试系统组件间接口的一种测试。主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点&#xff0c;重点是检查数据的交换&#xff0c;传递和控制管理过程&#xff0c;以及系统间的相互逻辑依赖关系等。 目的&#x…

选择合适的外贸公司邮箱注册服务提供商

随着全球化的发展&#xff0c;越来越多的企业开始涉足外贸领域。而在进行外贸业务时&#xff0c;邮箱是必不可少的工具之一。对于外贸公司来说&#xff0c;应该选择哪家邮箱服务提供商呢&#xff1f;口碑好安全性高的公司邮箱有Zoho Mail、阿里邮箱、腾讯邮箱、网易邮箱等。 首…

Spring cloud Sentinel介绍和安装

Sentinel介绍和安装 &#x1f308;初识Sentinel&#x1f308;安装Sentinel&#x1f320;docker 安装&#x1f320;下载sentinel镜像&#x1f320;启动sentinel镜像 &#x1f320;windows 安装&#x1f320;下载&#x1f320;运行 &#x1f320;sentinel访问 &#x1f308;微服务…

上海股票开户佣金最低是多少?怎么开万一账户!

上海股票开户佣金最低是多少&#xff1f;怎么开万一账户&#xff01; 股票开户是指向证券公司或经纪人申请开通股票交易账户的过程。开户时需要提供个人身份信息和相关资料&#xff0c;完成相关的申请、签署协议以及缴纳开户费用。开户后&#xff0c;投资者就可以在证券市场上…

8年测试老鸟总结,Python自动化测试实现思路(细致)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 Python自动化测试…

NVM:切换node版本后无法使用npm全局包

1.新建文件夹npm_global和npm_cache 2.npm设置 npm config set prefix "C:\Users\18068\node\node_global" npm config set cache "C:\Users\18068\node\node_cache" 3.设置环境变量 新建NVM_PATH环境变量 选择缓存目录 编辑PATH环境变量 新建%NVM_PA…

睿趣科技:新手抖音开店卖什么产品好

抖音已经成为了一款年轻人热爱的社交媒体应用&#xff0c;同时也成为了一种全新的电商平台。对于新手来说&#xff0c;抖音开店卖什么产品是一个备受关注的问题。在这篇文章中&#xff0c;我们将探讨一些适合新手的产品选择&#xff0c;帮助他们在抖音上开店获得成功。 流行时尚…

docker自定义网络下 :不同容器的nginx通过容器名称相互访问PHP项目

场景&#xff1a;每个服务都有自己运行的一套环境&#xff0c;分别都有自己的nginx &#xff1b;我们像用A容器的Nginx 的项目访问到B容器下的nginx项目内容&#xff0c;并且在自定义的网络下面 首先我们可以自定义一个网络&#xff1a;docker默认桥接&#xff1a; docker ne…

03. Springboot集成Mybatis-flex(一)

目录 1、前言 2、MyBatis-Flex 是什么&#xff1f; 3、框架功能对比 4、性能对比 5、快速使用 5.1、Maven添加依赖 5.2、数据源配置 5.3、创建实体类和表 5.4、创建Dao 5.5、创建Service 5.6、创建Controller接口测试 5.7、测试结果 6、小结 1、前言 现在主流的M…

git报错:git Permission denied, please try again.

1 问题描述: git clone/pull代码时提示输入密码,密码输入正确但是报错:git Permission denied, please try again. 2 解决方案: step1 检查SSH Key是否存在#cd ~/.ssh #lsstep2 获取SSH Key如果存在id_rsa.pub 或 id_dsa.pub 文件,跳过此步。 如果不存在,则生成: 先查…

浙江移动与中兴通讯合作项目被评为“光华杯”东部赛区一等奖!

近日&#xff0c;浙江移动携手中兴通讯共同打造的创新合作项目“构建面向东数西算的传输全光底座赋能美丽浙江”在2023年第二届“光华杯”东部赛区决赛中被评为一等奖&#xff0c;该项目以运力为核心&#xff0c;可实践应用于“东数西算”建设工程当中&#xff0c;提供高速无阻…

8. 基于消影点进行相机内参(主点)的标定

目录 1. ocam模型2. 消影点3. 基于消影点进行相机主点标定3.1 基于ocam模型的主点标定 感谢大家的阅读。 1. ocam模型 可以参考我的另一篇博客ocam模型。 这里简单提一下ocam模型&#xff1a; 这个模型将中心折反射相机和鱼眼相机统一在一个通用模型下&#xff0c;也称为泰勒模…

深眸科技迭代深度学习算法,以AI机器视觉技术扩围工业应用场景

智能制造是制造业数智化转型升级的发展方向&#xff0c;在当前以高端装备制造为核心的工业4.0时代背景下&#xff0c;越来越多的制造企业意识到机器视觉对于提高效率、降低成本&#xff0c;从而提升企业效益的意义。 目前&#xff0c;机器视觉已成为制造业迈向智能制造过程中极…

XC6206 低压线性稳压器 300mA低功耗LDO

XC6206系列是一款采用CMOS和激光修整技术制造的高精度、低能耗、3端子、正电压调压器。该系列提供了一个大的电流和一个明显的小的辍学电压。 XC6206由限流器电路、驱动器晶体管、精确参考电压和纠错电路组成。该系列兼容低ESR陶瓷电容。电流限制器的折叠电路作为短路保护以及输…

利用EXCEL进行XXE攻击

利用EXCEL进行XXE攻击 原因 原因 Microsoft Office从2007版本引入了新的开放的XML文件格式&#xff0c;新的XML文件格式基于压缩的ZIP文件格式规范&#xff0c;由许多部分组成。 我们可以将其解压缩到特定的文件夹中来查看其包含的文件夹和文件&#xff0c;可以发现其中多数是…

canvas绘制网格背景

/*** Event 方法* description: canvas 绘制网格背景* */drawGrid(element, lineColor, lineStepX, lineStepY, bgColor, bgStepX, bgStepY) {const canvas document.querySelector(element)const context canvas.getContext(2d)context.save();context.lineWidth 0.5;conte…

Mac cocoapods 3分钟安装教程( 国内镜像源方法)

参考链接&#xff1a;2023最新总结&#xff0c;Mac下使用Homebrew完全指南&#xff01; - 知乎 1.打开终端&#xff0c; 执行&#xff1a; /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" 2.运行&#xff0c;可以选择清…

Hazelcast系列(二):hazelcast集成

系列文章 Hazelcast系列(一)&#xff1a;初识hazelcast Hazelcast系列(二)&#xff1a;hazelcast集成 目录 前言 集成 环境 配置 配置一 配置二 配置三 测试 其他 总结 前言 前面通过 Hazelcast系列(一)&#xff1a;初识hazelcast 让我们对Hazelcast有了一个大…

Leetcode:【485. 最大连续 1 的个数】

题目 给定一个二进制数组 nums &#xff0c; 计算其中最大连续 1 的个数。 难度&#xff1a;简单 题目链接&#xff1a;485. 最大连续 1 的个数 示例1&#xff1a; 输入&#xff1a;nums [1,1,0,1,1,1] 输出&#xff1a;3 解释&#xff1a;开头的两位和最后的三位都是连续 1 …