4、CRUD

mongo数据库和平时常见的关系型数据库一样,最基本的操作就是增删改查,唯一的区别就是叫法不一样

SQL术语/概念MongoDB术语/概念解释/说明databasedatabase数据库tablecollection数据库表/集合rowdocument数据记录行/文档columnfield数据字段/域indexindex索引table joins表连接,MongoDB不支持primary keyprimary key主键,MongoDB自动将_id字段设置为主键

4.1 插入文档

插入文档本质就是向集合中插入数据,用关系型数据库的语句解释就是向数据表中插入数据

语法

#单个插入

db.collection_Name.insertOne(document)

#多个插入

db.collection_Name.insertMany([document])

例子:

#单个插入

db.test1.insertOne({name:"mongo",type:1,value:1})

#多个插入

db.test1.insertMany([

{

name:"mysql",

type:2,

value:2

},{

name:"oracle",

type:3,

value:3

},{

name:"nosql",

type:4,

value:4

},{

name:"xiaoming",

sex:"男",

age:20,

address:"江苏省南京市浦口区××××××苑×××××单元×××××楼×××××××户"

}

]

)

# 查看集合中的文档

db.test1.find()

4.2 更新文档

更新文档本质就是更新文档中的数据,用关系型数据库的语句解释就是更新数据表中的数据

```语法:`

#单行更新

db.test1.updateOne(

,

,

{

upsert: ,

multi: ,

writeConcern:

}

)

#多行更新

db.test1.updateMany(

,

,

{

upsert: ,

multi: ,

writeConcern:

}

)

参数说明

query : update的查询条件,类似sql update查询内where后面的。update : 更新的内容,也可以理解为sql update查询内set后面的upsert : 可选,默认是false,即当更新的条件不存在时不插入,true为插入,即当更新的条件不存在时,也插入数据。multi : 可选,默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。writeConcern :可选,抛出异常的级别。

例子:

不插入只更新第一条记录 db.test1.updateOne({name:"mongo"},{$set:{type:99}})

不插入只更新所有匹配条件的文档

db.test1.updateMany({name:"redis"},{$set:{type:111}})

4.3 查询文档

查询文档本质就是查询文档中的数据,用关系型数据库的语句解释就是查询数据表中的数据

语法

db.collection_name.find()

4.3.1 普通查询

普通查询:根据具体的某个条件进行查找

例子:

#查找集合中全部的文档

db.test1.find()

#查找名字为mongo的文档

db.test1.find({name:"mongo"})

#查找值为空的文档

db.test1.find({value:null})

4.3.2 模糊查询

在对数据库中的数据进行操作时,我们经常会使用到模糊查找,在mongo中也支持模糊查找,需要使用到$regex

例子

#查找名字中包含m的文档

db.test1.find({name:{$regex:/m/}})

#查找名字以m开头的文档

db.test1.find({name:{$regex:/^m/}})

4.3.3 条件查询

在对数据库中的数据进行操作时,我们经常会使用到条件查找,在mongo中也支持条件查找

例子

#查询类型不为111的文档

db.test1.find({type:{$ne:111}})

#查询类型不为111且名字已m开头的文档

db.test1.find({type:{$ne:111},name:{$regex:/^m/}})

#插叙名字为mongo或者type为空的文档

db.test1.find({

$or:

[

{name:"mongo"},

{type:null}

]

})

#插叙名字为mongo或者type为空且value为1的文档

db.test1.find({

$or:

[

{name:"mongo"},

{type:null}

],

value:1

})

4.4.4 投影查询

MongoDB 中的投影即查询指定的字段,而不是直接查询文档的全部字段。1标识显示,0标识隐藏

语法

db.ollection_name.find({file:1,file2:0})

例子

#插叙名字为mongo或者type为空且value为1的文档,要求只展示名字和类型

db.test1.find({

$or:

[

{name:"mongo"},

{type:null}

],

value:1

},{_id:0,name:1,type:1})

4.4.5 限制查询

mongo中的限制查询就是限制查询出来数据的数量

语法

db.test1.find().limit(count)

参数说明

count:需要限制的条数

例子:

#限制输出2条

db.test1.find().limit(2)

4.4.6 跳跃查询

mongo中的跳跃查询是指跳过指定的条数,然后查找满足条件的文档

语法

db.test1.find().skip(count)

参数说明

count:跳过的条数

例子

#跳过前两条

db.test1.find().skip(2)

#跳过前两条查找,并且返回3条数据,

db.test1.find().skip(2).limit(3)

#跳过前两条查找,并且返回3条数据

db.test1.find().limit(3).skip(2)

在聚合查询时,limit和skip有先后顺序关系

4.4.7 排序查询

排序查询是指将查询的结果进行排序, 其中 1 为升序排列,而 -1 是用于降序排列。

语法

db.COLLECTION_NAME.find().sort({KEY:1})

例子

db.test1.find().sort({name:-1})

4.4. 删除文档

在mongo中删除文档是指删除集合中的数据

语法

单个删除

db.collection.deleteOne(filter, options)

多个删除

db.collection.deleteMany(filter, options)

参数说明

filter参数用于指定需要删除的文档条件options参数可以用于指定一些额外选项

例子

db.test1.deleteOne({type:null})

db.test1.deleteMany({type:null})

推荐链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。