mongoDb入门并整合springboot

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: MongoDb是一种非关系型数据库,是现在非常火热的noSQL。也被称为文档性数据库。(可存放json,xml等格式)


image.png

1.MongoDb简介

  1. MongoDb是一种非关系型数据库,是现在非常火热的noSQL。也被称为文档性数据库。(可存放json,xml等格式)
  2. mongodb与mysql命令对比 传统的关系数据库一般由数据库(database)、表(table)、记录(record)三个层次概念组成,
  3. MongoDB是由数据库(database)、集合(collection)、文档对象(document)三个层次组成。(存储xml,json等)
  4. MongoDB对于关系型数据库里的表,但是集合中没有列、行和关系概念,这体现了模式自由的特点。
  5. 一条MongoDB就是一个类似json数据结构。

特点:

  1. 存储方式:虚拟内存+持久化。(数据存储在磁盘,但是充分利用了缓存,常用的数据放于内存)
  2. 不使用固定的sql进行操作。(有固定语法)

1.MongoDb的优点

  1. 高速。
  2. 支持json。(可存放复杂数据)
  3. 可扩展分片集群。

2.MongoDb的缺点

  1. 事务关系支持薄弱。
  2. 稳定性不足。
  3. 运维难。
  4. 不支持对表关联查询。
  5. 在指定id之后插入会比较慢。

3.使用场景

  1. 对大量无固定格式的数据存储,如日志等。(充分的使用了内存)
  2. 需要高性能。
  3. 扩展集群。

2.MongoDb的curd语法

1.安装

首先需要安装,可以按照这位老哥的来安装 https://www.cnblogs.com/RushPasser/p/b060ea88677ab73fce01300d19676158.html。亲试贼专业。

2.操作命令

进入C:\Program Files\MongoDB\Server\3.4\bin,双击mongo.exe。

show dbs  --查看数据库,假设我们有一个叫test的数据库
use test 使用test数据库

1.插入语法

db.message.save({'name':'xiaobao','age':27,'class':'1-1'})  --插入message的信息。里面为json。
db.message.save({'name':'xiaobao2','age':28,'class':'2-1'})
db.message.save({'name':'xiaobao3','age':29,'class':'3-1'})

2.查询语法

db.message.find()    --查询message
db.message.find().pretty()  --格式化在查询
db.message.find()  .limit(1)  --查询一条
db.message.find({"age":{"$gte":10}}) --查询age大于10的数据
db.message.find({"age":{"$lte":10}}) --查询age小于10的数据
db.message.find().sort({"age":1})  --正排序
db.message.find().sort({"age":1})  --负排序
db.message.count() --查询条数

3.修改语法

db.message.update({"name":"xiaobao"},{$set:{"name":"xiaowang"}}) 
db.message.update({"name":"xiaowang"},{"name":"laoli"})  --修改name 为laoli 其余值删除
db.message.update({"name":"xiaobao2"},{$set:{"name":"xiaowang"}},{upsert:true})   --如果没有 增加一条
db.message.update({"name":"xiaowang"},{$set:{"name":"xiaowang"}},{multi:true})    --修改所有数据

4.删除语法

db.message.remove()  --删除所有
db.message.remove({'class':'1-1'}) --删除class = 1-1的那条

3.整合spring boot

在application.properties加入mongoDb链接。

spring.data.mongodb.uri=mongodb://192.168.2.81:27017/test

然后使用MongoTemplate 来操作数据库,MongoTemplate 和常用的RedisTemplate差不多,都是封装了mongoDb方法的客户端。

    @Autowired
  private MongoTemplate mongotemplate;
   //增加
    @RequestMapping(path = "/savemongo", method = RequestMethod.POST)
  @ResponseBody
  public void savecCity(@RequestBody City city) {
    mongotemplate.save(city);//通过一个类类型向数据库中插入json
  }
    //查询
  @RequestMapping("/selmongo")
  @ResponseBody
  public City select(@RequestParam int id) {
    Query query = new Query(Criteria.where("id").is(id));  //查询id为传入参数
    City user = mongotemplate.findOne(query, City.class);
    return user;
  }
    //删除
  @RequestMapping("/delmogo")
  @ResponseBody
  public void del(@RequestParam int id) {
    Query query = new Query(Criteria.where("id").is(id));  //个人理解此行为查询条件,然后在下面查找出在删除。
    mongotemplate.remove(query, City.class);
  }
     //修改
  @RequestMapping(path = "/updamogo", method = RequestMethod.POST)
  @ResponseBody
  public void updateMongo(@RequestBody City city) {
    Query query = new Query(Criteria.where("id").is(city.getId()));
    Update update = new Update().set("provinceId", city.getProvinceId()).set("cityName", city.getCityName());
    mongotemplate.updateFirst(query, update, City.class);
  }


相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
1月前
|
NoSQL Java MongoDB
Springboot WebFlux项目结合mongodb进行crud
这篇文章介绍了如何使用Spring Boot WebFlux框架结合MongoDB进行基本的CRUD(创建、读取、更新、删除)操作,包括项目设置、实体类和Repository的创建、控制器的实现以及配置文件的编写。
46 0
Springboot WebFlux项目结合mongodb进行crud
|
2月前
|
NoSQL MongoDB
MongoDB入门-sort和投影
这篇文章介绍了MongoDB中的排序(sort)和投影(projection)操作,通过示例代码展示了如何使用这些功能来控制查询结果的排序顺序和返回的字段。
36 3
MongoDB入门-sort和投影
|
2月前
|
NoSQL MongoDB
MongoDB入门-MongoDB的CURD语句练习
这篇文章提供了MongoDB的CURD操作的练习,涵盖了插入、查询、更新和删除数据的基本命令,并通过具体示例展示了如何在MongoDB中执行这些操作。
42 2
|
3月前
|
NoSQL Java MongoDB
SpringBoot中MongoDB的那些高级用法
本文探讨了在Spring Boot项目中使用MongoDB的多种方式及其高级用法。MongoDB作为一种NoSQL数据库,在某些场景下相较于SQL数据库有着独特的优势。文中详细介绍了在Spring Boot中使用MongoDB的三种主要方式:直接使用官方SDK、使用Spring JPA以及使用MongoTemplate,并对比分析了它们之间的差异。此外,文章深入讲解了Spring Data MongoDB提供的各种注解(如@Id, @Document, @Field等)以简化操作流程,并探讨了MongoTemplate监听器的应用,如设置主键值、记录日志等。
168 2
|
1月前
|
存储 NoSQL MongoDB
MongoDB入门级别教程全(Windows版,保姆级教程)
一份全面的MongoDB入门级教程,包括在Windows系统上安装MongoDB、使用MongoDB Shell和Compass GUI进行数据库操作,以及MongoDB的基本数据类型和查询技巧。
66 2
MongoDB入门级别教程全(Windows版,保姆级教程)
|
1月前
|
SQL NoSQL Java
springboot操作nosql的mongodb,或者是如何在mongodb官网创建服务器并进行操作
本文介绍了如何在Spring Boot中操作NoSQL数据库MongoDB,包括在MongoDB官网创建服务器、配置Spring Boot项目、创建实体类、仓库类、服务类和控制器类,以及如何进行测试。
19 1
springboot操作nosql的mongodb,或者是如何在mongodb官网创建服务器并进行操作
|
3月前
|
NoSQL BI 数据处理
【超实用攻略】MongoDB 聚合框架:从入门到精通,带你解锁数据处理新姿势!
【8月更文挑战第24天】MongoDB是一款以其灵活性和高性能闻名的NoSQL数据库。其强大的聚合框架采用管道式处理,允许用户定义多个数据处理阶段如过滤、分组等。本文通过示例数据库`orders`和`products`,演示如何利用聚合框架计算各产品的总销售额。示例代码展示了使用`$lookup`连接两集合、`$unwind`打平数组及`$group`按产品ID分组并计算总销售额的过程。这突显了聚合框架处理复杂查询的强大能力,是进行数据分析和报表生成的理想选择。
51 3
|
3月前
|
持续交付 jenkins C#
“WPF与DevOps深度融合:从Jenkins配置到自动化部署全流程解析,助你实现持续集成与持续交付的无缝衔接”
【8月更文挑战第31天】本文详细介绍如何在Windows Presentation Foundation(WPF)项目中应用DevOps实践,实现自动化部署与持续集成。通过具体代码示例和步骤指导,介绍选择Jenkins作为CI/CD工具,结合Git进行源码管理,配置构建任务、触发器、环境、构建步骤、测试及部署等环节,显著提升开发效率和代码质量。
76 0
|
3月前
|
NoSQL Java MongoDB
SpringBoot中MongoDB的那些骚操作用法
MongoDB作为一种NoSQL数据库,在不需要传统SQL数据库的表格结构的情况下,提供了灵活的数据存储方案。在Spring Boot中可以通过官方SDK、Spring JPA或MongoTemplate等方式集成MongoDB。文章重点介绍了Spring Data MongoDB提供的注解功能,例如`@Id`、`@Document`和`@Field`等,这些注解简化了Java对象到MongoDB文档的映射。此外,文中还讨论了MongoTemplate监听器的使用,包括设置主键值和日志记录等高级特性。
228 0
SpringBoot中MongoDB的那些骚操作用法
|
3月前
|
NoSQL Java MongoDB
MongoDB 读写分离——SpringBoot读写分离
MongoDB 读写分离——SpringBoot读写分离
123 0