Spring MongoDB

这篇具有很好参考价值的文章主要介绍了Spring MongoDB。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

为什么选择MongoDB,而不是其它的数据库。

在SQL和NoSQL之间有一个大的争论。

在SQL中,创建Tables。

在NoSQL中,我们不维持这个结构。

为什么这样重要。

因为SQL在19世纪70年代变得流行的时候,在那时存储是昂贵的。

我们需要确保使用最小的存储,这样我们可以存储最大量的数据。

这是SQL类型表的意义。

在当前的世界,我们有如此多的非结构化的数据,不能够基于它们创建列。

如果你的表被创建,而想要添加一个新列。

这在SQL中是令人头痛的事,我们不希望在这里使用SQL。

第二个情况是,你想要扩展应用。你想要数据库的复制品。

在SQL中是很难做的。

当然,你可以有复制品。但是同步它是很困难的。

NoSQL在这方面胜出。

MongoDB是NoSQL的数据库。没有Tables,而是Collections。

SQL中用行来存储数据。

在NoSOL中是一个Document。

Documents是Collections的一部分。

不需要为MongoDB安装软件,因为会使用云服务,这个技能集合是很重要的。

其次,需要创建一个MongoDB Service。

MongoDB Atlas。

可以选择AWS,Google Cloud或者Azure。

将在本地环境中使用,连接在自己机器上运行的应用。

仅仅允许自己的机器使用数据库。

这样就部署好了数据库。

Cluster被创建了,还没有创建数据库。

可以点击Browse Collection来浏览数据库。

Collection相当于SQL中的Table。

在Collection里面创建数据库名称,和Collection名称。

为了连接应用到MongoDB,必须要指明MongoDB在哪。

首先,你的MongoDB在系统中,还是在云端上。

第二,你的数据库名是什么,用户名和密码是什么。

在resource目录的application.propertiesl里,可以做这些配置。

 现在,想要发送请求到服务端。在Spring框架中,我们使用Spring MVC。

首先创建数据实体,一个Pojo(Plain Ordinary Java Object)

映射Java类到Document。

@Document(collection = "name")

建立一个一对多的关系时,

@DocumentReference

导致数据库仅仅存储条目的Id,称为手动索引关系。

也有其它的方法在MongoDB中创建关系。

接下来创建Controller。

@RestController

@RequestMapping("/api/v1/name")

返回值为ResponseEntity。HttpStatus.OK返回值类型是200。

curl -i http://localhost:8080/api/v1/name

任何适当的RestAPI 都应该返回合适的状态码。

接下来,尝试从数据库中拉一些数据。

在Core Java  JDBC中需要写很多步骤。

在Spring Data中比较容易。

不需要写任何的方法,任何的实现。

不需要写任何的方法,不需要创建任何的类来实现。

MogoRepository将负责所有的CRUD操作。

需要一个Repository类。

Repository是Interface类型。

extends MongoRepository<DataType, IdType>

@Repository,框架知道这是一个Repository。

一旦我们创建了这个Repository。

创建一个Service类,不需要继承任何类。

@Service

在这个类中,将写数据库访问的代码。

在Service类中,需要一个Repository的引用。

@Autowired意味着Springboot将为你创建一个对象。

findAll方法在MongoRepository中被描述。

可以直接使用MongoRepository中的方法。

再返回到Controller,需要一个Service类的引用。

Controller,返回一个HttpStatus.OK的状态码。它并不知道在Service类中做的是什么事情。

当返回到Service类中,这是大部分业务逻辑的地方。

Service类使用了Repository类,和数据库交互,并且返回到API层。

最后Reoisitory层,也就是数据访问层,实际上和数据库交互,获取到数据回来。

在Controller类中

@PathVariable让框架知道。

findById方法可能不能发现一个Item数据,也许你传递的Id不存咋。

所以在这样的情况下,将要返回Null。

需要让Java知道可能返回Null,通过Optional。

不想暴露Collection实体的ID到公共场合,使用另一个imdbId

尽管Repository有用法Id查询的内置的方法,但是却没有搜索imdbId的内置方法,所以我们需要自己实现。

实现它很容易,因为有自动查询。

find<DocumentName>By<YourId>

仅仅通过命名这个方法,MongoDB数据。

Spring Data MongoDB将会理解我们在尝试做什么,它是如此的智能化。

属性名需要时唯一的。因为如果不是唯一的,

已经学习到了Repository作为和数据库交互的一种方式,另一种方式是使用MongoTemplate。

有时候可能有不能够在Repository中实现的复杂的操作。

或者,尽管你可以再Repository中实现它,也并不适合。

这个时候我们需要Template,我们可以通过Template来形成一个新的动态查询,不使用Repository在数据库中完成工作。

mongoTemplate.update(<ClassName>.class)
.matching(Criteria.where("idName").is(idName))
.apply(new Update().push("keyName").value(valueName))
.first();

使用template来执行一个update调用

复习上面的过程,我们采用了一个mongoTemplate,使用它来更新document中的一项数据。

有时,你必须自己编写一些复杂的业务逻辑。

Controller中创建一个Post请求

public ResponseEntity<Item> createItem(@RequestBody Map<String, String> payload) {

}

在Postman中测试请求,先创建一个Collection。

raw改为Json format。

这样就可以从用户处接收Json数据,key是String类型,value也是String类型。

从这个Map中,可以取得数据。

这就是如何用Springboot来创建一个新的后端API。

接下来进一步可以学习authorization(授权)和anthentication(认证)。

也可以学习更加复杂的关系。文章来源地址https://www.toymoban.com/news/detail-731448.html

到了这里,关于Spring MongoDB的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • mongodb 数据库管理(数据库、集合、文档)

    目录 一、数据库操作 1、创建数据库 2、删除数据库 二、集合操作 1、创建集合 2、删除集合 三、文档操作 1、创建文档 2、 插入文档 3、查看文档 4、更新文档 1)update() 方法 2)replace() 方法 创建数据库的语法格式如下: 如果数据库不存在,则创建数据库,否则切换到该数据

    2024年02月12日
    浏览(49)
  • Mongodb连接数据库

    npm init   npm i mongoose  const mongoose=require(\\\"mongoose\\\") mongoose.connect(\\\"mongodb://127.0.0.1:27017/user\\\") 说明:mongodb是协议,user是数据库,如果没有会自动创建user数据库 。 node 文件名     mongoose.disconnect()

    2024年02月15日
    浏览(59)
  • mongodb数据库操作

    1、启动mongodb 在mongodb启动命令中 --dbpath 指定mongodb的数据存储路径 --logpath 指定mongodb的日志存储路径 2、停止mongodb 第一步先进入mongo命令行模式 第二步,使用use admin 命令进入admin数据库 第三步,执行 db.shutdownServer()命令 停止服务。代码及显示如下:  2 、导出Mongodb数据 mon

    2024年02月09日
    浏览(50)
  • MongoDb数据库

    1.显示所有数据库: show dbs 2.切换到指定数据库,如果没有则自动创建数据库 use databaseName 3.显示当前所在数据库 db 4.删除当前数据库 use 库名 db.dropDatabase() 1.创建集合 db.createCollection(\\\'集合名称\\\') 2.显示当前数据库中所有集合 show colletions  3.删除某个集合 db.xxx.drop(); 4.重命名集

    2024年02月04日
    浏览(54)
  • MongoDB数据库安装

    MongoDB数据的特点: 面相文档存储的分布式数据库 具有很强的扩展性 支持丰富的查询表达式,很接近于关系性数据库 使用类似于json的结构保存数据,可以轻易的查询到文档中内嵌的对象及数组 首先去官网下载安装包 Download MongoDB Community Server | MongoDB 启动MongoDB数据的服务 可

    2024年02月11日
    浏览(57)
  • 【数据库MongoDB】MongoDB与大数据关系以及MongoDB中重要的进程:mongod进程与mongo进程关系

    云计算的定义有多种说法,对于到底什么是云计算,我们至少可以找到100种解释。目前广为接受的是美国国家标准与技术研究院定义: 云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池(资源包括网络、服务器

    2024年02月02日
    浏览(68)
  • MongoDB 数据库详细介绍

    MongoDB(来自“Humongous”,意为巨大的)是一个开源、高性能、无模式(NoSQL)、文档导向的分布式数据库。它以其灵活性、可扩展性和强大的查询功能而闻名于世。MongoDB 使用 JSON 格式的文档来存储数据,适用于多种应用场景,包括 Web 应用、移动应用、日志存储、大数据等。

    2024年02月12日
    浏览(65)
  • MongoDB:数据库初步应用

    1.MongoDBCompass连接数据库 连接路径:mongodb://用户名:密码@localhost:27017/ 2.创建数据库(集合) MongoDB中数据库被称为集合.  MongoDBCompass连接后,点击红色框加号创建集合,点击蓝色框加号创建文档(数据表) 文档中的数据结构(相当于表中的列)设计不用管,添加数据的时候,自动创建列和数

    2024年02月12日
    浏览(47)
  • python数据库——Mongodb

    MongoDB 是一个开源的 NoSQL数据库系统,它是一个面向文档的数据库,使用 JSON 格式来存储和查询数据。MongoDB 是一个非关系型数据库,它的设计目标是以高性能、高可用性和可扩展性为特点,适用于处理大量的非结构化数据。 特点: MongoDB 是一个面向文档存储的数据库,操作

    2024年02月07日
    浏览(55)
  • MongoDB 数据库性能优化技巧

    原文:MongoDB 数据库性能优化技巧 (techdatafuture.com) MongoDB 是一款灵活且可扩展的NoSQL数据库,为了提高其性能,我们可以采取一些优化技巧。本文将介绍一些MongoDB性能优化的关键点,包括索引的使用、查询优化、数据模型设计和硬件优化等。          1.合理使用索引     索

    2024年02月09日
    浏览(76)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包