MongoDB(芒果数据库)学习(一)———增删改查
MongoDB数据库CRUD(增删改查)的操作
(1)NoSQL 简介
NoSQL有时也称作Not Only SQL的缩写,意即"不仅仅是SQL"。
现代的计算网络,每天上都会产生大量数据。
这些数据大部分都是由关系性数据库系统(RDBMS)来管理的。
NoSQL用于超大规模数据的存储。
现在针对大数据处理以及高并发、高读写推荐使用,NoSQL被广泛应用。(例如国外的谷歌、Facebook。国内阿里、腾讯每天为用户收集万亿比特的数据)等,创业型公司很多使用。NoSQL无需多余操作就可以横向扩展。
(2)MongoDB三个概念
MongoDB的数据模型是面向文档的,简单理解 这个数据库中存的是各种各样的 JSON。(BSON)。
MongoDB属于NOSQL,了解mongodb需要先知道这三个名词代表含义。
- 数据库(database)
数据库是一个仓库,在仓库中可以存放集合。 - 集合(collection)
集合类似于数组,在集合中可以存放文档。
(类似于SQL中的表空间) - 文档(document)
文档数据库中的最小单位,我们存储和操作的 内容都是文档。
(类似于SQL中的表)
以上为了方便理解与传统SQL进对比,但之后不要SQL思想去学习。
二、MongoDB操作
(1)MongoDB基本指令
在mongodb中,数据库和集(collection)都不需要手动创建,当我们创建的文档时,如果文档所在的集合或数据库都没有,mongodb会自动创建集合与数据库。
基本指令:
1、Show dbs/Show databases
显示当前的所有数据库
2、Use test_table
进入document文件(或者表中)
3、db
表示当前所处数据库
4、show collections
显示所有集合
(2)数据库CRUD的操作
操作工具使用的是studio3T。
因为使用语法,还是想讲的细一点儿。会附截图。
1、Insert(向集合中插入文档)
单个:db.collection.insert()或者 db.collection.insertOne()
db.emp.insert({name:“索隆”,postion:“左副”,gender:“男”});
多个:db.collection.insertMany()
这里需要注意下写法,"[ ]" ,如果写成了
db.emp.insert({name:"山治",postion:"右副",gender:"男"},{name:"乔巴",postion:"船医生",gender:"中性"},{name:"娜美",postion:"领航员",gender:"男"},{name:"索隆",postion:"左副",gender:"男"}
);
会只有一条记录,之后也会有"[ ]" 这种问题,但只是写法问题就不去提了。
所以写成:
db.emp.insert([{name:"山治",postion:"右副",gender:"男"},{name:"乔巴",postion:"船医生",gender:"中性"},{name:"娜美",postion:"领航员",gender:"男"},{name:"乌索普",postion:"逆风大神",gender:"男"},{name:"索隆",postion:"左副",gender:"男"}
]);
或者写成官方文档格式:
db.emp.insertMany([{name:"山治",postion:"右副",gender:"男"},{name:"乔巴",postion:"船医生",gender:"中性"},{name:"娜美",postion:"领航员",gender:"男"},{name:"乌索普",postion:"逆风大神",gender:"男"},{name:"索隆",postion:"左副",gender:"男"}
]);
都是可以的。
以上是Insert()、insertOne()、insertmany()、区别不大。
但One会明确插入一个,Many会插入多个,在官方文档也是说明在3.2版本后追加的新功能,肯定还是有一定作用。
之后的改删会有区别。有详讲。
2、Find(查询所有符合条件的文档)
多个:db.collection.find()
因为没有检索条件,就全部显示出
在混合写法中,默认为且条件
db.emp.find({name:"索隆",postion:"左副"});
db.emp.find({name:"索隆",postion:"船医"});
没有符合条件的数据就显示为零条。
单个:db.collection.findOne()或者db.collection.find(条件)
图示12行代码为检索符合条件,显示第一条数据。
图示13行代码为检索符合条件,显示第2条( [序数])数据。
值得注意的是find(返回的是数组),find返回的是对象,可通过打点调用的方式,返回数组大小或者对象属性。
3、Update(修改符合条件的文档)
修改字段值:db.collection.update() //db.collection.updateMany()
我们想把这个“娜美”的性别变换为女性。
按照官方文档我们成功的将性别进行了更改。
db.emp.update({name:"娜美"},{$set:{gender:"女"}}
);
如果我们没有写$set会发生以下情况。
db.emp.update({name:"娜美"},{gender:"女"});
看日志是成功了!
但实际人给弄丢了。
增加字段值:db.collection.update()
针对没有的字段,不用像Oracle新建,直接就可自动创建。
除了在update中增加字段,在insert时mongodb都会根据需要自动创建。因此扩展性强。
db.emp.update({name:"索隆"},{$set:{dream:"第一大剑豪"} }
);
但值得注意的是,数据中有两个“索隆”,update与updateOne 都只是默认改第一个,不过可以使用。db.collection.updateMany()去修改多个,所有匹配的,都会更改,在此不再截图证明了。
但update实际是updateOne()与updateMany()的综合体
在官方文档中,update有很多属性,当使用update将multi设置为true时即可更改多条符合条件数据。
当我们执行以下指令:
db.emp.update({gender:"男"},{$set:{describe:"可爱的憨憨"} },{multi:true}
);
会发现符合条件的数据都发生了变化!
4、Delete(修改符合条件的文档)
删除数据:
db.collection.deleteOne()
db.collection.deleteMany()
db.collection.remove()
在这里,deleteMany与remove的处理结果都是相同的都是符合条件所有数据
db.emp.deleteMany({name:"索隆"})
但是在remove属性,增加true条件会只删除一个,deleteone效果相同,官方文档有说明:
db.emp.remove({name:"索隆"},true
)
但常同删除数据的方法,是将其中一个字段设置为isDel为1,当显示数据时显示isDel为0的数据,即可达成删除数据的目的。好处是任何删除的数据,都可还原,提高数据安全性。
删除集合
db.collection.remove()
db.collection.drop()
当使用:
db.emp.remove({});
db.emp.drop();
会将collection也删除掉
如果remove方法传入空对象,也会将集合删除
但处理过程为一条条删除,效率会很低,当真的需要删除时,可直接使用db.collection.drop()。
当然还有db.dropdatabase().删除数据库,除非你已经做好了删库跑路的准备。还有2020年2月24号的新闻,恶意删库犯罪人被判刑了两年,因此你们懂得!
三、结语:
感谢阅读文章,您的赞是对我的激励。如有错误请示作者改正,万分感谢。
认真做好每一件事,只为做个细心的人。
长大后发现时间流逝的真的很快。
有这样一个小故事: 曾国藩小时晚上背书,墙外有个小偷,就等呀等呀!等了很多个时辰,发现还没背完。最后小偷生气的一脚踹开门,当着曾国藩的面将他背诵的内容背诵了出来。
并羞辱的说道:你这么笨还浪费什么灯油。
但十年后,小偷仍旧是小偷,而曾国藩已经成了举世闻名的大人物!
时间不是用来流逝的,而是用来积累的。
加油!
MongoDB(芒果数据库)学习(一)———增删改查相关推荐
- 系统运维系列 之Clickhouse数据库学习集锦(增删改查操作)
1 简介 本篇内容涉及一些增删改查操作,包括数据库.表,重点介绍字段的增加/删除操作,其中包含的内容均实际测试通过. 2 Clickhouse clickhouse是一款MPP架构的列式存储数据库,它 ...
- mysql创建数据表列子,MySQL 创建数据库及简单增删改查
MySQL 创建数据库及简单增删改查 我们可以在登陆 MySQL 服务后,使用 create 命令创建数据库,语法如下: CREATE DATABASE 数据库名; 登入: Enter passwor ...
- Flask框架——数据库操作命令(增删改查)
目录 创建数据表 添加数据 插入单条数据 插入多条数据 查询数据 全部查询 精确查询 模糊查询 主键查询 排序 修改数据 删除数据 删除数据表 上篇文章我们学习了Flask框架--数据库配置及迁移同步 ...
- java调用oracle删除,使用IDEA对Oracle数据库进行简单增删改查操作
1.1 java中的数据存储技术 在java中,数据库存取技术可分为如下几类: 1.jdbc直接访问数据库 2.jdo(java data object)是java对象持久化的新的规范,也是一个用于存 ...
- sqlite数据库的基本增删改查操作
2019独角兽企业重金招聘Python工程师标准>>> 效果图示例 1.在清单里添加相应的权限 <uses-permission android:name="andr ...
- python数据库教程_Python连接mysql数据库及简单增删改查操作示例代码
1.安装pymysql 进入cmd,输入 pip install pymysql: 2.数据库建表 在数据库中,建立一个简单的表,如图: 3.简单操作 3.1查询操作 #coding=utf-8 #连 ...
- jaba窗体连接mysql增删改查_知识实现——Java使用jdbc连接MySql数据库,实现增删改查...
Java使用jdbc连接MySql数据库,实现增删改查 首先,导入MySql连接数据库的jar包,我用的是 mysql连接jar包 DB类,用于获得数据库连接 import java.sql.Driv ...
- Vue学习(增删改查、ES6模块化概念)-学习笔记
文章目录 Vue学习(增删改查.ES6模块化概念)-学习笔记 增删改查案例 ES6模块化概念 Vue学习(增删改查.ES6模块化概念)-学习笔记 增删改查案例 <!DOCTYPE html> ...
- IOS开发基础之SQLite3数据库的使用增删改查
IOS开发基础之SQLite3数据库的使用增删改查 ios开发我们可能会使用到数据库进行持久化存储.sqlite3 是轻量级的数据库. 今天我们来介绍sqlite3 数据库.此方法跟java的增删改查 ...
- 数据库的操作 增删改查 mysql
数据库的操作 增删改查 mysql 登陆数据库 查看全部的数据库 系统提供的库,除了 test 是给我们练手的 其它的不要碰 mysql库,保存了系统重要内容,比如帐户 root帐户的用户名,密码,就 ...
最新文章
- ReactNative ViewPageAndroid组件详解
- 2018全国计算机考试报名入口,北京2018年3月全国计算机等级考试报名入口
- vue $emit $on 非父子非兄弟组件传值
- mfc实现秒表小项目
- 华为交换机初始化_华为交换机恢复出厂设置
- np.expm1_JavaScript中带有示例的Math.expm1()方法
- 生信宝典之傻瓜式(五) 文献挖掘查找指定基因调控网络
- java基础之-I/O流和File类解析
- jQery 操作CSS
- Java内部类相关问题的总结与体会
- jsp include参数传送接收与应用
- 惠普打印机换硒鼓图解_惠普打印机墨盒更换步骤
- android 不压缩保存图片格式,Android图片处理——压缩、剪裁、圆角、保存
- 2020开启企业服务新纪元 云测试成为热门赛道
- Keil中如何生成bin文件
- 计算机的语言是美式英语,有关计算机语言英语口语表达
- 迷之Konigsberg七桥问题
- 苹果HomeKit生态深度解析,在智能家居领域后发制人?
- 读书笔记:无人机控制(二)
- 设计模式学习(汇总版)