MongoDB数据库CRUD(增删改查)的操作

(1)NoSQL 简介

NoSQL有时也称作Not Only SQL的缩写,意即"不仅仅是SQL"。
现代的计算网络,每天上都会产生大量数据。
这些数据大部分都是由关系性数据库系统(RDBMS)来管理的。
NoSQL用于超大规模数据的存储。
现在针对大数据处理以及高并发、高读写推荐使用,NoSQL被广泛应用。(例如国外的谷歌、Facebook。国内阿里、腾讯每天为用户收集万亿比特的数据)等,创业型公司很多使用。NoSQL无需多余操作就可以横向扩展。

(2)MongoDB三个概念

MongoDB的数据模型是面向文档的,简单理解 这个数据库中存的是各种各样的 JSON。(BSON)。
MongoDB属于NOSQL,了解mongodb需要先知道这三个名词代表含义。

  1. 数据库(database)
    数据库是一个仓库,在仓库中可以存放集合。
  2. 集合(collection)
    集合类似于数组,在集合中可以存放文档。
    (类似于SQL中的表空间)
  3. 文档(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(芒果数据库)学习(一)———增删改查相关推荐

  1. 系统运维系列 之Clickhouse数据库学习集锦(增删改查操作)

    1 简介 本篇内容涉及一些增删改查操作,包括数据库.表,重点介绍字段的增加/删除操作,其中包含的内容均实际测试通过. 2 Clickhouse clickhouse是一款MPP架构的列式存储数据库,它 ...

  2. mysql创建数据表列子,MySQL 创建数据库及简单增删改查

    MySQL 创建数据库及简单增删改查 我们可以在登陆 MySQL 服务后,使用 create 命令创建数据库,语法如下: CREATE DATABASE 数据库名; 登入: Enter passwor ...

  3. Flask框架——数据库操作命令(增删改查)

    目录 创建数据表 添加数据 插入单条数据 插入多条数据 查询数据 全部查询 精确查询 模糊查询 主键查询 排序 修改数据 删除数据 删除数据表 上篇文章我们学习了Flask框架--数据库配置及迁移同步 ...

  4. java调用oracle删除,使用IDEA对Oracle数据库进行简单增删改查操作

    1.1 java中的数据存储技术 在java中,数据库存取技术可分为如下几类: 1.jdbc直接访问数据库 2.jdo(java data object)是java对象持久化的新的规范,也是一个用于存 ...

  5. sqlite数据库的基本增删改查操作

    2019独角兽企业重金招聘Python工程师标准>>> 效果图示例 1.在清单里添加相应的权限 <uses-permission android:name="andr ...

  6. python数据库教程_Python连接mysql数据库及简单增删改查操作示例代码

    1.安装pymysql 进入cmd,输入 pip install pymysql: 2.数据库建表 在数据库中,建立一个简单的表,如图: 3.简单操作 3.1查询操作 #coding=utf-8 #连 ...

  7. jaba窗体连接mysql增删改查_知识实现——Java使用jdbc连接MySql数据库,实现增删改查...

    Java使用jdbc连接MySql数据库,实现增删改查 首先,导入MySql连接数据库的jar包,我用的是 mysql连接jar包 DB类,用于获得数据库连接 import java.sql.Driv ...

  8. Vue学习(增删改查、ES6模块化概念)-学习笔记

    文章目录 Vue学习(增删改查.ES6模块化概念)-学习笔记 增删改查案例 ES6模块化概念 Vue学习(增删改查.ES6模块化概念)-学习笔记 增删改查案例 <!DOCTYPE html> ...

  9. IOS开发基础之SQLite3数据库的使用增删改查

    IOS开发基础之SQLite3数据库的使用增删改查 ios开发我们可能会使用到数据库进行持久化存储.sqlite3 是轻量级的数据库. 今天我们来介绍sqlite3 数据库.此方法跟java的增删改查 ...

  10. 数据库的操作 增删改查 mysql

    数据库的操作 增删改查 mysql 登陆数据库 查看全部的数据库 系统提供的库,除了 test 是给我们练手的 其它的不要碰 mysql库,保存了系统重要内容,比如帐户 root帐户的用户名,密码,就 ...

最新文章

  1. ReactNative ViewPageAndroid组件详解
  2. 2018全国计算机考试报名入口,北京2018年3月全国计算机等级考试报名入口
  3. vue $emit $on 非父子非兄弟组件传值
  4. mfc实现秒表小项目
  5. 华为交换机初始化_华为交换机恢复出厂设置
  6. np.expm1_JavaScript中带有示例的Math.expm1()方法
  7. 生信宝典之傻瓜式(五) 文献挖掘查找指定基因调控网络
  8. java基础之-I/O流和File类解析
  9. jQery 操作CSS
  10. Java内部类相关问题的总结与体会
  11. jsp include参数传送接收与应用
  12. 惠普打印机换硒鼓图解_惠普打印机墨盒更换步骤
  13. android 不压缩保存图片格式,Android图片处理——压缩、剪裁、圆角、保存
  14. 2020开启企业服务新纪元 云测试成为热门赛道
  15. Keil中如何生成bin文件
  16. 计算机的语言是美式英语,有关计算机语言英语口语表达
  17. 迷之Konigsberg七桥问题
  18. 苹果HomeKit生态深度解析,在智能家居领域后发制人?
  19. 读书笔记:无人机控制(二)
  20. 设计模式学习(汇总版)

热门文章

  1. php排斥ajaxsubmit函数,jQuery中的ajaxSubmit详解
  2. 各大视频网站下载神器
  3. 贝塞尔方程与贝塞尔函数学习笔记
  4. 禅道类似软件_推荐几款不错的项目管理软件
  5. Nachos操作系统实习-lab1
  6. 从宏杉合作伙伴大会看本土存储厂商的“逆袭”
  7. dataset基本用法
  8. 软件开发版本号命名规则
  9. Java程序员简历模板
  10. 中级职称计算机应用考哪些,中级职称计算机考试大纲