MongoDB学习笔记三

目录

1.数据库增删

1.1数据库创建

 1.2数据库删除

 2.集合增删

2.1创建集合

 2.2删除集合

 3.文档增删改查

3.1查询文档

3.2创建文档

3.3删除文档

3.4更新/修改文档


1.数据库增删

1.1数据库创建

数据库创建语法格式:

use DatabaseName

在mongodb中使用use与在mysql中使用use database一致,都是选择需要使用的数据库;不同的是当mongodb中不存在该数据库,那么它会自动创建该数据库;

mongodb中默认的数据库为 test,如果你没有创建新的数据库,那么你所创建的集合将默认存放在 test 数据库中

注意:新建的数据库中,如果没有集合,那么它就是空的数据库,下次重新选择时又会重新创建,如果要保存该数据则请随便插入一个集合;

MongoDB学习笔记三_第1张图片

 1.2数据库删除

数据库删除语法格式:

db.dropDatabase()

删除当前数据库,默认为 test,你可以使用 db 命令查看当前数据库名

下面我们来删除demo数据库,以图片为例

MongoDB学习笔记三_第2张图片

 2.集合增删

2.1创建集合

创建集合语法:

db.createCollection(collectionName);

db.createCollection(collectionName, options);

直接使用db.createCollection(collectionName),则集合会使用默认的参数创建指定名字的集合

使用db.createCollection(collectionName, options),则需要手动指定参数,例如:

db.createCollection("demo", {size: 10000, max:10000})

options参数说明:

字段 类型 描述
capped 布尔 (可选)如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。
当该值为 true 时,必须指定 size 参数。
autoIndexId 布尔 3.2 之后不再支持该参数。(可选)如为 true,自动在 _id 字段创建索引。默认为 false。
size 数值 (可选)为固定集合指定一个最大值,即字节数。
如果 capped 为 true,也需要指定该字段。
max 数值 (可选)指定固定集合中包含文档的最大数量。

MongoDB学习笔记三_第3张图片

 2.2删除集合

删除集合语法:

db.collectionName.drop()

删除成功返回true,删除失败返回false;

我们可以通过show tables或show collections来查看已有的集合

MongoDB学习笔记三_第4张图片

 3.文档增删改查

3.1查询文档

语法格式:

db.collectionName.find()

db.collectionName.find().pretty()  // 格式化显示所有文档

查询所有:

db.collectionName.find()

查询指定条件:

db.collectionName.find({"age":24})

MongoDB学习笔记三_第5张图片

 多条件查询:

db.collectionName.find({key:value,key:value,key:value,...})

db.collectionName.find({$or:[{key:value},{key:value},....]})

and查询:

or查询:

 and和or查询联合使用:

 大小条件语句查询:

操作 格式 示例 sql中的类似语句
等于 {:} db.col.find({"key":"value"}).pretty() where by = 'key'
小于 {:{$lt:}} db.col.find({"key":{$lt:50}}).pretty() where likes < 50
小于或等于 {:{$lte:}} db.col.find({"key":{$lte:50}}).pretty() where likes <= 50
大于 {:{$gt:}} db.col.find({"key":{$gt:50}}).pretty() where likes > 50
大于或等于 {:{$gte:}} db.col.find({"key":{$gte:50}}).pretty() where likes >= 50
不等于 {:{$ne:}} db.col.find({"key":{$ne:50}}).pretty() where likes != 50

3.2创建文档

创建文档语法格式:

db.collectionName.insert(document)

db.collectionName.save(document)

save():如果 _id 主键存在则更新数据,如果不存在就插入数据。该方法新版本中已废弃,可以使用 db.collection.insertOne() 或 db.collection.replaceOne() 来代替。

insert(): 若插入的数据主键已存在,则抛出 org.springframework.dao.DuplicateKeyException 

异常,提示主键重复,不保存当前数据。

3.2 版本之后新增了 db.collection.insertOne() 和 db.collection.insertMany()

insertOne():

MongoDB学习笔记三_第6张图片

 insertMany():

MongoDB学习笔记三_第7张图片以上是一般的正常插入语句写法,接下来我们玩点高级的,通过不知道大家有主要到我上面插入语句中写的document吗?是的,接下来我们使用document对象插入,展示:

MongoDB学习笔记三_第8张图片

除了我这里用的insertOne()方法你当然也可以使用insert(document)或save(document)

当然你也可以写多个document,然后使用insertMany()插入

语法insertMany([document1,document2,do........])

3.3删除文档

语法格式:

db.collectionName.remove()

删除示例:

MongoDB学习笔记三_第9张图片

需要注意, 直接使用remove()会删除所有的数据,如果只需要删除一条数据那么需要加上remove({},1)

MongoDB学习笔记三_第10张图片

3.4更新/修改文档

语法格式:

db.collectionName.update(,)

db.collectionName.save(document)

详细的介绍属性如图:

MongoDB学习笔记三_第11张图片

参数说明:

query : update的查询条件,类似sql update查询内where后面的。

update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的

upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。

multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。

writeConcern :可选,抛出异常的级别。

实际上使用的时候没有这么复杂,我们只需要在(,)query中输入条件,在updatedata中输入更新数据即可,例如:

MongoDB学习笔记三_第12张图片

如此更新只会修改一条数据,所以我们需要为他添加另一条参数实现批量修改,如图:

 更多实例:

说明 语法演示
只更新第一条记录 db.col.update( { "count" : { $gt : 1 } } , { $set : { "test2" : "OK"} } );
全部更新 db.col.update( { "count" : { $gt : 3 } } , { $set : { "test2" : "OK"} },false,true );
只添加第一条 db.col.update( { "count" : { $gt : 4 } } , { $set : { "test5" : "OK"} },true,false );
全部添加进去 db.col.update( { "count" : { $gt : 5 } } , { $set : { "test5" : "OK"} },true,true );
全部更新 db.col.update( { "count" : { $gt : 15 } } , { $inc : { "count" : 1} },false,true );
只更新第一条记录 db.col.update( { "count" : { $gt : 10 } } , { $inc : { "count" : 1} },false,false );

4.其他类型操作

4.1条件操作

  • (>) 大于 - $gt
  • (<) 小于 - $lt
  • (>=) 大于等于 - $gte
  • (<= ) 小于等于 - $lte

示例:db.col.find({age:{$gt:100}});

4.2类型操作

类型 对应数字
Double 1
String 2
Object 3
Array 4
Binary data 5
Object id 7
Boolean 8
Date 9
Null 10

 

示例:db.col.find({“name”:{$type:2}})或db.col.find({“name”:{$type:'string'}});

4.3分页查询

如果你需要在MongoDB中读取指定数量的数据记录,可以使用MongoDB的Limit方法,limit()方法接受一个数字参数,该参数指定从MongoDB中读取的记录条数。

示例:db.collectionName.find().limit(NUMBER)

除了可以使用limit()方法来读取指定数量的数据外,还可以使用skip()方法来跳过指定数量的数据,skip方法同样接受一个数字参数作为跳过的记录条数。

示例:db.collectionName.find().limit(NUMBER).skip(NUMBER)

你可能感兴趣的:(学习笔记,学习,笔记,数据库,mongodb)