【开发篇】八、SpringBoot整合MongoBD

文章目录

  • 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.mzph.cn/news/88256.shtml

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

相关文章

(Mysql高级语句(进阶查询语句+数据库函数+连接查询))

Mysql高级语句&#xff08;进阶查询语句MySQL数据库函数连接查询&#xff09; 一、mysql查询语句1.1、 select ----显示表格中一个或数个字段的所有数据记录1.2、 distinct ----不显示重复的数据记录1.3、where ----有条件查询1.4、 and or ----且 或1.5 、in----显示已知的值的…

算法竞赛备赛之动态规划训练提升,DP基础掌握

1.背包问题 1.1.01背包问题 01背包问题是在M件物品中选择若干件放在空间为W的背包中&#xff0c;每件物品的体积为W1&#xff0c;W2至Wn&#xff0c;价值为P1&#xff0c;P2至Pn&#xff0c;01背包的约束条件是给定几种物品&#xff0c;每种物品有且只有一个&#xff0c;并且…

ChatGPT重磅升级:可以看图、听声音、说话啦!

美东时间9月25日&#xff0c;OpenAI在官网宣布&#xff0c;对ChatGPT进行重磅升级实现看图、听声音、输出语音内容三大功能。 早在今年3月OpenAI发布GPT-4模型时&#xff0c;就展示过看图的功能&#xff0c;但由于安全、功能不完善等原因一直没有开放。现在不仅开放了看图&…

TensorFlow入门(四、数据流向机制)

session与"图"工作过程中存在的两种数据的流向机制,即:注入机制和取回机制 注入机制(feed):即通过占位符向模式中传入数据 取回机制(fetch):指在执行计算图时&#xff0c;可以同时获取多个操作节点的计算结果 实例代码如下: import tensorflow.compat.v1 as tftf…

傅一平:2023年我的私人书单(上)

2023年一直在通过ChatGPT学习&#xff0c;读书少了&#xff0c;但不能不读。 这里推荐上半年读过的TOP 9 书单&#xff0c;同时附上我的一句话评语和豆瓣的评分&#xff0c;涉及思考方法、系统架构、跨学科知识、沟通技巧、生活感悟、个人修养等等。 TOP 1 佛畏系统-用系统思维…

解决apscheduler意外跳过任务【Execution of job “xx“(trigger:xxx), next run at: xxx】

解决方法 添加配置&#xff1a; max_instances&#xff1a;添加最多可同时进行的数量 misfire_grace_time&#xff1a;如果意外断开&#xff0c;多少秒以内会重新尝试运行 如&#xff1a; scheduler.add_job(print_each_5_second, interval, seconds5, max_instances10, mi…

Vue中的自定义指令详解

文章目录 自定义指令自定义指令-指令的值&#xff08;给自定义指令传参数&#xff09;自定义指令- v-loading指令封装 自定义指令 自定义指令&#xff1a;自己定义的指令&#xff0c;可以封装一些dom 操作&#xff0c;扩展额外功能&#xff08;自动聚焦&#xff0c;自动加载&a…

HTML5+CSS3小实例:脉冲波纹催眠动画特效

实例:脉冲波纹催眠动画特效 技术栈:HTML+CSS 效果: 源码: 【html】 <!DOCTYPE html> <html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta name="viewport" content=&qu…

800G时代来临,千兆光模块万兆光模块还有用吗?

随着科技的不断进步&#xff0c;网络传输速度的需求也越来越高&#xff0c;特别是在云计算、人工智能、物联网等领域&#xff0c;对网络传输速度的要求越来越高。近年来&#xff0c;千兆光模块和万兆光模块已经成为了网络传输的主要手段&#xff0c;但随着800G时代的到来&#…

自学视觉SLAM(1)

引言 小编研究生的研究方向是视觉SLAM&#xff0c;目前在自学&#xff0c;已经学了Linux系统的基本操作&#xff0c;vim编辑器以及高翔老师的一些视屏。本篇文章为初学笔记。 文章目录 引言1 熟悉 Linux1.1 如何在 Ubuntu 中安装软件&#xff08;命令⾏界⾯&#xff09;&#x…

Python爬虫之入门保姆级教程

目录 一、分析要爬取的网站 二、导入相关库 三、相关的参数 四、向网站发出请求&#xff08;使用代理IP&#xff09; 五、匹配 六、获取图片&#xff0c;保存到文件夹中&#xff08;os库&#xff09; 七、完整代码 总结 相信许多人都曾为如何入门Python爬虫而烦恼。今天…

FastChat 大模型部署推理;Baichuan2-13B-Chat测试、chatglm2-6b测试

参考&#xff1a; https://github.com/lm-sys/FastChat https://blog.csdn.net/qq128252/article/details/132759107 ##安装 pip3 install "fschat[model_worker,webui]"模型下载&#xff1a; ##模型下载&#xff1b;huggingface下载慢&#xff0c;可以在modelscop…

安防视频平台EasyCVR视频调阅全屏播放显示异常是什么原因?

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

执行上下文,js、React、HTML中的this

目录 执行上下文属性&#xff1a;变量对象、this&#xff0c;作用域链 变量对象是与执行上下文相关的数据作用域&#xff0c;存储&#xff1a;变量、函数声明 执行上下文生命周期 创建&#xff1a;生成变量对象、创建函数作用域&#xff0c;建立作用域链、确定this的指向 …

经典文献阅读之--EGO-Planner(无ESDF的四旋翼局部规划器)

0. 简介 作为局部规划器而言&#xff0c;当机器人或无人机想要避开动态障碍物时。局部规划器就显得尤为重要了。其中基于梯度的规划器被广泛用于四旋翼无人机的局部规划&#xff0c;其中欧几里得符号距离场&#xff08;ESDF&#xff09;对于评估梯度幅度和方向至关重要。然而&…

ARINC825规范简介

ARINC825规范简介 机载CAN网络通用标准 ARINC825规范全称为机载CAN网络通用标准&#xff08;The General Standardization of CAN for Airborne Use&#xff09;。顾名思义&#xff0c;ARINC825规范是建立在CAN物理网络基础上的高层规范。CAN网络使用共享的双绞电缆传输数据&…

电压放大器在无损探伤中的应用研究

电压放大器是一种常见的电子设备&#xff0c;其主要作用是将低电平信号转换为高电平信号。在无损探伤中&#xff0c;电压放大器被广泛应用于信号增益和分析&#xff0c;以便更好地检测表面或内部缺陷。下面安泰电子Aigtek将详细介绍电压放大器在无损探伤中的应用研究。 电压放大…

二、vue2脚手架-组件化开发

| vue中的图片打包后会转换为base64格式 组件的使用 1.创建组件&#xff1a;component文件夹中创建HelloWorld.vue文件 2.在app.vue中引入组件 组件间的通信/传值&#xff08;常用&#xff09; 一、prop父传子 1.App.vue中的引入组件中创建需要传递的数据 2.在子组件中接…

车厂造手机旗舰版售价6899,不只是个“车钥匙”

大伙应该发现了这两年的一个奇怪现象&#xff1a;造手机的跑去造车&#xff0c;而车厂又跑来造手机。 这也好解释&#xff0c;毕竟别人碗里的更香、别人老氵…板先挑衅是吧&#xff1f; 昨日&#xff0c;蔚来在其创新科技日活动中正式发布了传闻已久的手机产品 NIO Phone 。 …

掌动智能兼容性测试有哪些优势

兼容性测试为企业带来市场竞争优势&#xff0c;并提高用户满意度。在软件开发过程中&#xff0c;将兼容性测试作为一个重要的环节&#xff0c;将为企业的成功和用户满意度打下坚实的基础。那么&#xff0c;掌动智能兼容性测试的具体优势是什么?下面&#xff0c;就来看看具体介…