Springboot+mongodb

springboot如何整合mongodb MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。 阅读详情

Basic Concept:

  • 词义解析:mongo 并不是mango(芒果)之意,在拉丁语中mongo 是“巨大”之意。是一种介于关系型与非关系型数据库之间的NoSql(Not only SQL)
  • mongodb 中文网站:www.mongoing.com
  • mongodb 中文文档:docs.mongoing.com
  • nosql 数据库相比传统 sql 数据库少了:实时一致性;事务;多表联合查询。
    杀掉 MongoDB 的进程需使用kill -15或不带参数,不能使用kill -9

SpringBoot 应用mongodb

  • spring-data-mongodb主要有以下注解

    1. @Id
      主键,不可重复,自带索引,可以在定义的列名上标注,需要自己生成并维护不重复的约束。如果自己不设置@Id主键,mongo会自动生成一个唯一主键(_id, ObjectId, 生成规则:UNIX时间戳 +MongoDB的机器 +生成此_id的进程 +随机数),并且插入时效率远高于自己设置主键。
      在实际业务中不建议自己设置主键,应交给mongo自己生成,自己可以设置一个业务id,如int型字段,用自己设置的业务id来维护相关联的表。

    2. @Document
      标注在实体类上,类似于hibernate的entity注解,标明由mongo来维护该表。

      //org.springframework.data.mongodb.core.mapping.Document.class
      //把一个java类声明为mongodb的文档,可以通过collection参数指定这个类对应的文档。
      @Document(collection=”mongodb 对应 collection 名”)
      // 若未加 @Document ,该 bean save 到 mongo 的 user collection
      // 若添加 @Document ,则 save 到 reUser collection
      @Document(collection=”reUser“)
      public class User{
      }

    3. @Indexed
      声明该字段需要加索引,加索引后以该字段为条件检索将大大提高速度。
      唯一索引的话是@Indexed(unique = true)。
      也可以对数组进行索引,如果被索引的列是数组时,MongoDB会索引这个数组中的每一个元素。
      也可以对整个Document进行索引,排序是预定义的按插入BSON数据的先后升序排列。
      也可以对关联的对象的字段进行索引,譬如User对关联的address.city进行索引。(注解怎么写还不清楚,待查)

    4. @CompoundIndex
      复合索引,加复合索引后通过复合索引字段查询将大大提高速度。

      @Document
      @CompoundIndexes({
      @CompoundIndex(name = “age_idx”, def = “{‘lastName’: 1, ‘age’: -1}”)
      })
      public class Person {
      }
      写法如上,lastName和age将作为复合索引,数字参数指定索引的方向,1为正序,-1为倒序。方向对单键索引和随机存不要紧,但如果你要执行分组和排序操作的时候,它就非常重要了。

    5. @Field
      代表一个字段,可以不加,不加的话默认以参数名为列名。
      给映射存储到 mongodb 的字段取别名
      在 java bean 中字段名为 firstName,存储到 mongo 中 key 为 fName

      @Field(“fName”)
      private String firstName;

    6. @Transient
      被该注解标注的,将不会被录入到数据库中。只作为普通的javaBean属性。

    7. @DBRef
      关联另一个document对象。类似于mysql的表关联,但并不一样,mongo不会做级联的操作。
      先来看一下不加DBRef时,mongo保存数据的情况:
      Article类有String title,List pictureList,两个属性,Picture有一个url,一个desc属性。新建数个Picture对象,并赋值给Article的list,执行Article的insert操作,
      list会作为普通的数据存到article里, 并不会为Picture建表,这一点是区别于mysql的级联存储的。 如果给Article的List pictureList 加上注解:

      @DBref
      List<> pictureList;
      然后分别做两个集合的持久化(save)
      这里写图片描述
      这里写图片描述此时,发现就不再是直接显示的Picture的各个属性了,而是只保存了Picture的id和namespace,同时仍然没有创建Picture的collection(等同于mysql的表)。

  • spring-boot 应用mongodb

    1. gradle 中引入mongodb 的包: compile(“org.springframework.boot:spring-boot-starter-data-mongodb:1.5.7.RELEASE”)
    2. 多个IP集群可以采用以下配置: spring.data.mongodb.uri=mongodb://user:pwd@ip1:port1,ip2:port2/database
    3. 创建实体类
    4. 引入mongodbTemplate
  • mongodb 连接池
    官方文档:
    Note: The Mongo object instance actually represents a pool of connections to the database; you will only need one object of class Mongo even with multiple threads. See the concurrency doc page for more information.
    The Mongo class is designed to be thread safe and shared among threads. Typically you create only 1 instance for a given DB cluster and use it across your app. If for some reason you decide to create many mongo intances, note that:
    all resource usage limits (max connections, etc) apply per mongo instance
    to dispose of an instance, make sure you call mongo.close() to clean up resources.
    mongo实例其实已经是一个现成的连接池了,而且线程安全。这个内置的连接池默认初始了10个连接,每一个操作(增删改查等)都会获取一个连接,执行操作后释放连接。
SpringBoot系列之MongoDB Aggregations 在上一章的学习中,我们知道了Spring Data MongoDB的基本用法,但是对于一些聚合操作,还是不熟悉的,所以本博客介绍一些常用的聚合函数。MongoDB 中使用聚合(Aggregations)来分析数据并从中获取有意义的信息 阅读详情

相关推荐

springboot整合MongoDB实现增删改查 | Spring Boot 30

一、建一个maven工程 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apach

学Java,找哪吒 7656

SpringBoot中使用MongoDB遇到的一些坑

SpringBoot中使用MongoDB遇到的一些坑 ObjectId 在将Mongo集合转换为JavaBean的时候发现Mongo集合中的主键是ObjectId类型的,然后Bean是拿String接收的发现没有一点儿问题,后来有一个需求是拿Id去表里面查数据,这个Id也不是那个表里面的主键,但是类型也是ObjectId的,用String查的,怎么查都是空的,百思不得其解。后来再想既然是Objec...

weixin_44130081的博客 6623

springboot整合mongodb

在之前的一篇中,我们在服务器上搭建了mongodb,今天来说说使用springboot如何整合使用mongodb, 1、启动mongodb服务,进入mongodb主目录,执行如下命令, ./bin/mongod -f ./data/mongodb.conf 启动成功后,我们进入到控制台去,直接在bin目录下 ./mongodb即可,如图所示,提示的日志可以不用管, 然后在这里我们可以创建...

congge 6万+

springboot整合MongoDB时碰到的问题

1.账号总是不对,导致查不出数据 这次,我也是第一次接触MongoDB,非常的生疏 springboot整合MongoDB,要在properties文件中配置账号 mongodb基本语法: use DATABASE_NAME; --创建数据库 show dbs; --查看我们所有的库,注意,我们刚创建的库,如果没有数据,是不会被显示的 show users; --查看当前库所有拥有的账号 d...

Brave_heart4pzj的博客 5150

SpringBoot编程基础教程:Spring Boot集成MongoDB

作者:禅与计算机程序设计艺术 1.背景介绍 MongoDB简介 MongoDB是一个基于分布式文件存储的数据库,旨在为web应用、移动应用、分布式计算、云计算等场景提供高性能的数据处理能力。MongoDB是一个NoSQL数据库,它支持的数据结构非常松散

AI天才研究院 1076

时间序列聚类在股票市场分析中的实践与优化

时间序列聚类是一种面向动态行为建模的无监督学习方法,其核心在于通过语义感知的距离度量(如DTW)捕捉价格形态的相位弹性与结构相似性,而非依赖静态数值或标签驱动。相比K-Means等传统算法,它能有效缓解金融时序中普遍存在的噪声敏感、对齐失效与形态失真问题,从而提升聚类结果的市场可解释性与策略鲁棒性。该技术已广泛应用于市场状态识别、行业行为分群、异常交易监测等场景,并成为构建可验证量化分析框架的关键预处理层。本文聚焦A股真实行情数据,详解从原始OHLCV到可聚类时间序列的完整链路,涵盖DTW距离计算、层次聚类

weixin_34220179的博客 828

SpringDataMongoDB, repository.save(entity) 不返回自增主键的问题排查

今天遇到这个坑,排查了半天发现是repository.save(entity) 这里的entity传入的id是个空字符串的原因 深入跟踪到源码里,发现这里isNew的判断对非原型类的id只是判断了null,而我传入的事空字符串。所以会走更新的流程。 ...

zhanjunpeng01的博客 1810

Ansys HFSS 中的同轴电缆仿真

准确模拟它们的行为对于确保 RF 系统的最佳性能至关重要。在本博客中,我们将介绍在 HFSS 中设置同轴电缆仿真并绘制插入损耗、回波损耗和电场分布的过程。将波端口分配给同轴线的两端以激励模型,并定义了从 1 GHz 到 20 GHz 的频率扫描以评估其宽带性能。铜分配给内部导体,铝分配给外部导体。介电区域使用 PTFE 定义,其相对介电常数为 2.1,损耗角正切为 0.00022。仿真完成后,结果用于绘制整个频率范围内的回波损耗和插入损耗。此外,电介质内的电场分布也被绘制和动画化。

jkh920184196的博客 1907

Springboot集成MongoDb快速入门

MongoDB是一个基于分布式文件存储 [1] 的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式(MongoDB存储的是BSON文档),因此可以存储比较复杂的数据类型。

现在的我强的可怕 1265

S32K344 Bootloader实战:一个按键实现从Boot到App的无缝跳转(附完整代码)

本文详细介绍了基于NXP S32K344微控制器的Bootloader开发实战,重点解析如何通过一个硬件按键实现从Boot到App的可靠跳转。内容涵盖内存分区规划、中断向量表重映射、外设初始状态管理等核心要素,并提供了完整的代码示例和调试技巧,适用于汽车电子和工业控制等高可靠性应用场景。

weixin_29192365的博客 307

Windows server Database 2025 安装 i225/i226 网卡驱动

Windows server Database 2025 安装 i225/i226 网卡驱动 windows这比坏得很,intel消费级网卡不准在服务器系统上安装。你要说他是异构不支持?他就纯粹恶心人。 之前已经安装过一次,但是今天database预览版一更新,又给我把网卡驱动杀了,气死,写一篇教程。 到这里就完成了,总之还是想辱骂windows,提供便捷的同时又人为制造困难,多少有点(隔壁linux内核直接自带全家桶了就一省心) 并且近年Intel的新U安装显卡驱动和普通声卡驱动都不会出声

低温热源的博客 1万+

SpringBoot整合MongoDB

MongoDB是一种开源的文档型数据库管理系统,它使用类似于JSON的BSON格式(Binary JSON)来存储数据。与传统关系型数据库不同,MongoDB不使用表和行的结构,而是采用集合(Collection)(Mysql表)和文档(Document)(MySql行)的概念来组织数据。

qq_65142821的博客 9492

射频收发机(RF Transceiver)

2,既然原来外差的思路是把声音频率的信号,通过混频搬移到高频电磁波频率,那对高频率信号放大的时候,是不是也可以先在比较低的射频频率进行放大,然后再通过频率搬移的方式,将放大后的信号搬移到高频率呢?频率搬移过程中,中间预先设定的固定射频频率被称为“中频”(中间频率,IF,Intermediate Frequency),由于这个频率超出了声音可听的范围,是“超声波”(supersonic),所以被命名为“超外差”(Super-Heterodyne)。混频后的信号在0频率附近,可能会发生DC偏移。

2301_77317229的博客 1122

SpringBoot操作MongoDB

SpringBoot整合MongoDB

路漫漫其修远兮 2458

SAP_FICO模块-资产减值功能对折旧和残值的影响

SAP_FICO模块-资产减值操作对资产历史折旧以及后续折旧的影响,包括减值操作的配置前提

风沙的博客 2805

TI单芯片毫米波雷达1642demo代码走读(一)

今天我们来实际看下代码。 首先使用CCS软件导入demo工程,工程有两个,一个是ARM的工程,工程名是mmw_mss_16xx;另一个是DSP的工程,工程名为mmw_dss_16xx。我们将这两个工程的主函数打开,分别位于mss_main.c和dss_main.c文件中。 先看mss的主函数,代码如下。我为每行代码都加了中文注释和自己的理解。 int main (void) { Task_Params taskPara...

1万+

springboot集成mongodb_Spring Boot WebFlux 集成 Mongodb 数据源操作

本文我们用 MongoDB 来实现 WebFlux 对数据源的操作。什么是 MongoDB ?官网:https://www.mongodb.com/MongoDB 是一个基于分布式文件存储的数据库,由 C++ 语言编写,旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。由于操作方便,...

weixin_39998859的博客 138

鸢尾花分类预测

鸢尾花数据总用有150个样本,是一个典型的分类数据集,共有3个类别,分别是山鸢尾(Iris-setosa)、变色鸢尾(Iris-versicolor)和维吉尼亚鸢尾(Iris-virginica),每个样本的特征有4列sepal_length:萼片长度sepal_width:萼片宽度petal_length:花瓣长度petal_width:花瓣宽度这里我们定义了随机森林模型作为实例,来进行模型训练,之后我们会对其使用网格搜索找到最优的参数。

优快云 精品推荐 2188

spring boot mongodb 数组 查询_SpringBoot第八篇:springboot整合mongodb

这篇文章主要介绍springboot如何整合mongodb。准备工作安装 MongoDBjdk 1.8maven 3.0idea环境依赖在pom文件引入spring-boot-starter-data-mongodb依赖: org.springframework.boot spring-boot-starter-data-mongodb 数据源配置如果mongodb端口是默认端口,并且没有设置密码...

weixin_39798579的博客 712

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

SpringBoot中MongoDB的使用

SpringBoot中MongoDB的使用

YIYIYI 8365

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

springboot集成mongodb_spring boot 集成mongodb

mongodb的安装在官网上下载,不做说明这里说下集成代码:1 先上pom依赖:org.springframework.bootspring-boot-starter-data-mongodb2 配置文件spring.data.mongodb.host=127.0.0.1spring.data.mongodb.port=27017spring.data.mongodb.database=mwdb#...

weixin_39654823的博客 294

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

SpringBoot集成Mongodb

MongoDB是一种非关系型数据库,被广泛用于大型数据存储和分布式系统的构建。MongoDB支持的数据模型比传统的关系型数据库更加灵活,支持动态查询和索引,也支持json格式和bson格式的数据存储,这种格式可以支持读取和写入大量的数据。

2301_81405087的博客 3405

SpringBoot与MongoDB版本对照参考

SpringBoot与MongoDB版本对照参考

一恍过去 3万+

SpringBoot整合Mongodb

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

知足上进,不负野心。 1954
上一篇: MongoDB+ES 学习
下一篇: mongodb命令
雨冰
博客等级 码龄15年 18粉丝 60原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值