当前位置:   article > 正文

mongo基本操作---文档的增删改查_mongo 增删改查

mongo 增删改查

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)
  • 1

#多个插入

db.collection_Name.insertMany([document])
  • 1

例子:

#单个插入
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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

在这里插入图片描述

4.2 更新文档

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

```语法:`

#单行更新

db.test1.updateOne(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   }
)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

#多行更新

db.test1.updateMany(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   }
)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

参数说明

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

例子:

  1. 不插入只更新第一条记录

    db.test1.updateOne({name:"mongo"},{$set:{type:99}})
    
    • 1

在这里插入图片描述

  1. 不插入只更新所有匹配条件的文档
db.test1.updateMany({name:"redis"},{$set:{type:111}})
  • 1

在这里插入图片描述

4.3 查询文档

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

语法

db.collection_name.find()
  • 1
4.3.1 普通查询

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

例子:

#查找集合中全部的文档
db.test1.find()
  • 1
  • 2

在这里插入图片描述

#查找名字为mongo的文档
db.test1.find({name:"mongo"})

  • 1
  • 2
  • 3

在这里插入图片描述

#查找值为空的文档
db.test1.find({value:null})
  • 1
  • 2

在这里插入图片描述

4.3.2 模糊查询

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

例子

#查找名字中包含m的文档
db.test1.find({name:{$regex:/m/}})
  • 1
  • 2

在这里插入图片描述

#查找名字以m开头的文档
db.test1.find({name:{$regex:/^m/}})
  • 1
  • 2

在这里插入图片描述

4.3.3 条件查询

在对数据库中的数据进行操作时,我们经常会使用到条件查找,在mongo中也支持条件查找
在这里插入图片描述

例子

#查询类型不为111的文档
db.test1.find({type:{$ne:111}})
  • 1
  • 2

在这里插入图片描述

#查询类型不为111且名字已m开头的文档
db.test1.find({type:{$ne:111},name:{$regex:/^m/}})
  • 1
  • 2

在这里插入图片描述

#插叙名字为mongo或者type为空的文档
db.test1.find({
  $or:
    [
      {name:"mongo"},
      {type:null}
    ]
})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在这里插入图片描述

#插叙名字为mongo或者type为空且value为1的文档
db.test1.find({
  $or:
    [
      {name:"mongo"},
      {type:null}
    ],
    value:1
})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

在这里插入图片描述

4.4.4 投影查询

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

语法

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

例子

#插叙名字为mongo或者type为空且value为1的文档,要求只展示名字和类型
db.test1.find({
  $or:
    [
      {name:"mongo"},
      {type:null}
    ],
    value:1
},{_id:0,name:1,type:1})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

在这里插入图片描述

4.4.5 限制查询

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

语法

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

参数说明

count:需要限制的条数

例子:

#限制输出2条
db.test1.find().limit(2)
  • 1
  • 2

在这里插入图片描述

4.4.6 跳跃查询

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

语法

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

参数说明

count:跳过的条数

例子

#跳过前两条
db.test1.find().skip(2)
  • 1
  • 2

在这里插入图片描述

#跳过前两条查找,并且返回3条数据,
db.test1.find().skip(2).limit(3)
#跳过前两条查找,并且返回3条数据
db.test1.find().limit(3).skip(2)
  • 1
  • 2
  • 3
  • 4

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

在这里插入图片描述

4.4.7 排序查询

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

语法

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

例子

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

  • 1
  • 2

在这里插入图片描述

4.4. 删除文档

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

语法

单个删除

db.collection.deleteOne(filter, options)
  • 1

多个删除

db.collection.deleteMany(filter, options)
  • 1

参数说明

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

例子

db.test1.deleteOne({type:null})
db.test1.deleteMany({type:null})
  • 1
  • 2
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/878345
推荐阅读
相关标签
  

闽ICP备14008679号