mongoDb入门并整合springboot
镜像下载、域名解析、时间同步请点击 阿里巴巴开源镜像站
MongoDb简介
- MongoDb是一种非关系型数据库,是现在非常火热的noSQL。也被称为文档性数据库。(可存放json,xml等格式)
- mongodb与mysql命令对比 传统的关系数据库一般由数据库(database)、表(table)、记录(record)三个层次概念组成,
- MongoDB是由数据库(database)、集合(collection)、文档对象(document)三个层次组成。(存储xml,json等)
- MongoDB对于关系型数据库里的表,但是集合中没有列、行和关系概念,这体现了模式自由的特点。
- 一条MongoDB就是一个类似json数据结构。
特点:
- 存储方式:虚拟内存+持久化。(数据存储在磁盘,但是充分利用了缓存,常用的数据放于内存)
- 不使用固定的sql进行操作。(有固定语法)
1.MongoDb的优点
- 高速。
- 支持json。(可存放复杂数据)
- 可扩展分片集群。
2.MongoDb的缺点
- 事务关系支持薄弱。
- 稳定性不足。
- 运维难。
- 不支持对表关联查询。
- 在指定id之后插入会比较慢。
3.使用场景
- 对大量无固定格式的数据存储,如日志等。(充分的使用了内存)
- 需要高性能。
- 扩展集群。
MongoDb的curd语法
安装
首先需要安装,可以按照这位老哥的来安装
操作命令
进入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的那条
整合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);
}
本文转自:
https://blog.51cto.com/u_15403620/4756019
mongoDb入门并整合springboot的更多相关文章
- SpringBoot入门篇--整合mybatis+generator自动生成代码+druid连接池+PageHelper分页插件
原文链接 我们这一篇博客讲的是如何整合Springboot和Mybatis框架,然后使用generator自动生成mapper,pojo等文件.然后再使用阿里巴巴提供的开源连接池druid,这个连接池 ...
- dubbo入门学习(三)-----dubbo整合springboot
springboot节省了大量的精力去配置各种bean,因此通过一个简单的demo来整合springboot与dubbo 一.创建boot-user-service-provider 本篇博文基于上篇 ...
- 非关系型数据库MongoDB入门
本文分为以下四块简单介绍非关系型数据库MongoDB:1.MongoDB简介.2.MongoDB和关系数据库对比.3.MongoDB基本概念.4.mongo shell的使用以及对MongoDB的增删 ...
- RabbitMQ从概念到使用、从Docker安装到RabbitMQ整合Springboot【1.5w字保姆级教学】
@ 目录 一.前言 二.RabbitMQ作用 1. 异步处理 2. 应用解耦 3. 流量控制 三.RabbitMQ概念 1. RabbitMQ简介 2. 核心概念 四.JMS与AMQP比较 五.Rab ...
- MongoDB 入门之基础 DCL
此文章主要记录部分主要的 MongoDB 的 DCL 操作. MongoDB 默认不需要用户名和密码就可以用 mongodb.exe 登录 一.开启 MonogoDB 的权限模式 修改 MongoDB ...
- MongoDB入门三:MongoDB shell
MongoDB shell MongDB shell是一个功能完备的Javascript解释器,可以运行Javascript程序.也可以用于连接MongoDB服务器,执行脚本,对数据库进行操作.类似于 ...
- MongoDB 入门之查询(find)
MongoDB 入门之查询(find) 1. find 简介 (1)find的第一个参数决定了要返回哪些文档. 空的查询文档会匹配集合的全部内容.默认就是{}.结果将批量返回集合c中的所有文档. db ...
- MongoDB入门简介
MongoDB入门简介 http://blog.csdn.net/lolinzhang/article/details/4353699 有关于MongoDB的资料现在较少,且大多为英文网站,以上内容大 ...
- mongodb入门教程二
title: mongodb入门教程二 date: 2016-04-07 10:33:02 tags: --- 上一篇文章说了mongodb最基本的东西,这边博文就在深入一点,说一下mongo的一些高 ...
随机推荐
- JVM的监控
# Table of Contents * 一.jvm常见监控工具&指令 * 1. jps:jvm进程状况工具 * 2.jstat: jvm统计信息监控工具 * 3.jinfo: java配置 ...
- Solution -「ZJOI2012」「洛谷 P2597」灾难
\(\mathcal{Description}\) link. 给定一个捕食网络,对于每个物种,求其灭绝后有多少消费者失去所有食物来源.(一些名词与生物学的定义相同 w.) 原图结点数 \ ...
- c++ 动态内存 动态数组
动态内存-动态数组 习题12.23 //连接字符串到动态数组 char *c = new char[20](); char a[] = "hello "; char b[] = & ...
- Nginx兼容框架的pathinfo模式与URL重写
几乎所有的框架(ThinkPHP,Zend Framework,CI,Yii,laravel等)都会使用URL重写或者pathinfo模式,使URL看起来更美观,比如可以隐藏掉入口文件,并且有利于搜索 ...
- CobaltStrike逆向学习系列(2):Stageless Beacon 生成流程分析
这是[信安成长计划]的第 2 篇文章 关注微信公众号 [信安成长计划] 0x00 目录 0x01 Patch Beacon 0x02 Patch Loader 0x03 文件对比 0x04 流程图 C ...
- 实践GoF的23种设计模式:SOLID原则(上)
摘要:本文以我们日常开发中经常碰到的一些技术/问题/场景作为切入点,示范如何运用设计模式来完成相关的实现. 本文分享自华为云社区<实践GoF的23种设计模式:SOLID原则(上)>,作者: ...
- Custom数据如何导入RENIX软件——网络测试仪实操
在我们日常工作中,有的时候会需要把特定的数据内容从抓包软件中导入到RENIX软件中,然后以大速率发送出去,本文描述如何进行这样的操作. 一.整理需要抓取的数据部分 1.例如有一个数据包,里面包含特定的 ...
- 谁说EXCEL不能处理大数据?那是你用错了工具
我是一名数据分析师,每天需要和各种各样的数据和表格打交道,是一名名副其实的"表哥",不仅需要制作和更新公司里的日报.周报和月报,有时候也要为公司的会议准备各种数据材料.由于公司的业 ...
- 【windows 操作系统】Windows系统机制之对象管理器
转载自 Windows系统机制之对象管理器 设计的几个目的: 提供一种公共统一的机制来使用系统资源 将对象保护隔离到OS中的一个地方,从而确保统一的一致的对象访问策略 提供一种机制来管理进程对对象的使 ...
- oj教程--贪心
贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解. 贪心算法不是对所有问题都能得到整体最优解,关键是 ...