浙江省建设厅举报网站发布平台有哪些
目录
一、MongoDB数据库原理
二、MongoDB数据库和集合基本操作(增删改查)
三、MongoDB数据库的文档基本操作(增删改)
四、学习笔记
往期文章:【NoSQL数据库】MongoDB数据库的安装与卸载-CSDN博客
一、MongoDB数据库原理
MongoDB层次(从小到大):键值对—文档—集合—数据库
MongoDB是一个开源文档数据库,提供高性能,高可用性和自动扩展,旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB中的记录是一个文档,它是由字段和值(key=>value)对组成的数据结构。 MongoDB文档与JSON对象相似。 字段的值可能包括其他文档,数组和文档数组。
在MongoDB中基本的概念是文档(document)、集合(collection)、数据库(database)。
|   SQL术语/概念  |   MongoDB术语/概念  |   解释/说明  | 
|   database  |   database  |   数据库  | 
|   table  |   collection  |   数据库表/集合  | 
|   row  |   document  |   数据记录行/文档  | 
|   column  |   Field  |   数据字段/域  | 
|   index  |   Index  |   索引  | 
|   table joins  |   表连接,MongoDB不支持  | |
|   primary key  |   primary key  |   主键,MongoDB自动将_id字段设置为主键  | 
二、MongoDB数据库和集合基本操作(增删改查)
1、启动mongodb,并进入命令行,如下图所示

2、MongoDB创建数据库
(1)使用/创建数据库Employee,命令use Employee

(2)显示所有数据库,命令show dbs

(3)向Employee插入数据,命令
db.Employee.insert({“name”:”google”})

3、MongoDB删除数据库
删除数据库Employee,需要进入该数据库,命令db.dropDatabase()

4、集合操作
(1)创建集合
在myDB数据库里创建集合myCollection,命令
db.createCollection("myCollection")

(2)查询集合
在数据库myDB里查询所有集合,命令show collections

(3)对集合重命名
将集合myCollection重命名mycoll,命令
db.myCollrction.renameCollection("mycoll")

(4)删除集合,命令db.mycoll.drop()

重复练习,在数据库myDB里创建集合AAA并把其重命名为aaa,再删除集合aaa,如下图所示:

三、MongoDB数据库的文档基本操作(增删改)
1、先使用MongoDB数据库Employee

创建集合AAA

2、向集合AAA中插入表格所示的文档数据,使用db.AAA.insert()
|   _id  |   Count  |   Test2  |   Test5  | 
|   “自动生成”  |   1  |   Flase  |   True  | 
|   “自动生成”  |   2  |   Flase  |   True  | 
|   “自动生成”  |   3  |   Flase  |   True  | 
|   “自动生成”  |   4  |   Flase  |   True  | 
|   “自动生成”  |   5  |   Flase  |   True  | 
|   “自动生成”  |   6  |   Flase  |   True  | 
|   “自动生成”  |   7  |   Flase  |   True  | 
|   “自动生成”  |   8  |   Flase  |   True  | 
|   “自动生成”  |   9  |   Flase  |   True  | 
如下所示:

用db.AAA.find()查询集合AAA里的所有文档数据

3、将Count值大于1的第一条记录中Test2更新为OK,即修改Count值为2的记录,使用db.AAA.update(),如下所示:
db.AAA.update({Count: {$gt:1}},{$set: {Test2: "OK"}})

查看更新情况,显示Count值为2的Test2内容已更新为OK。

4、将Count值大于2的所有记录中Test2全部更新为OK。
这里需要添加一个multi参数,设置为true表示update操作会更新所有符合条件的记录,设置为false表示只更新第一条符合条件的记录。这里要全部更新,设置为true,如下所示:
db.AAA.update({Count:{$gt:2}},{$set: {Test2: "OK"}},{multi:true})

可以看到,Count值为3~9的记录中Test2内容更新为OK。
5、将Count值大于3的第一记录中Test5用添加方式(通过配置upsert)更新为OK。
这里使用到upsert参数,设置为true,表示如果没有找到符合条件的记录,就插入一个新记录,设置为false,表示如果没有找到符合条件的记录,不会执行插入新记录。本题已经有Count值大于3的记录,所以upsert设置成什么值暂时不会影响数据的添加。因为是只更新符合条件的第一条记录,所以multi值为false,如下所示:
db.AAA.update({Count:{$gt:3}},{$set:{Test5:"OK"}},{upsert:true,multi:false})

可以看到,Count值为4的记录中Test5内容更新为OK。
6、将Count值大于4的所有记录中Test5用添加方式更新为OK。
更新所有符合条件的记录,只需要将上题的语句中multi值改为true即可,如下所示:
db.AAA.update({Count:{$gt:4}},{$set:{Test5:"OK"}},{upsert:true,multi:true})

可以看到,Count值为5~9的记录中Test5内容更新为OK。
7、采用更新的方式,将Count值大于5的所有记录中Count值全部增加1。
$inc是递增操作符,用于实现对Count字段值增加1的操作,这里更新所有记录mutli值为true,如下所示:
db.AAA.update({Count: {$gt:5}},{$inc: {Count:1}},{multi:true})

可以看到,Count值为6~9的记录的Count值都加了1。
8、采用更新的方式,将Count值大于10的第一个记录中Count值增加2。
由于目前集合里没有Count值大于10的记录,所以执行更新语句显示没有找到符合条件的文档,都是0,如下所示
db.AAA.update({Count: {$gt:10}},{$inc: {Count:2}},{multi:false})

因此先添加一条Count为11的记录,再进行更新语句,如下所示:
db.AAA.insert({Count:11,Test2:'OK',Test5:'OK'})


可以看到,Count为11的记录的Count值已经变成了13。
9、删除集合AAA下的所有文档,使用db.AAA.remove({}),如下所示:

四、学习笔记
插入文档使用db.collection.insert()来实现,如果不指定_id的值,则MongoDB会自动生成一串字符来表示_id。更新文档使用db.collection.update()来实现,其中有两个可选参数,一个是multi,一个是upsret。multi参数设置为true,表示update操作会更新所有符合条件的记录,设置为false表示只更新第一条符合条件的记录。upsert参数设置为true,表示如果没有找到符合条件的记录,就插入一个新记录,设置为false,表示如果没有找到符合条件的记录也不会执行插入新记录。
删除文档使用db.collection.delete Many({})或db.col.remove({}),删除指定文档使用db.collection.deleteOne。
