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)

#多个插入

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(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   }
)

#多行更新

db.test1.updateMany(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   }
)

参数说明

  • 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. 不插入只更新所有匹配条件的文档
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)

参数说明

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

例子

db.test1.deleteOne({type:null})
db.test1.deleteMany({type:null})
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MongoTemplate是Spring Data MongoDB提供的一个MongoDB操作模板,它封装了对MongoDB的常用操作方法。以下是MongoTemplate的增删改查语法示例: 1. 插入文档(增加数据): 使用`insert()`方法插入单个文档: ```java mongoTemplate.insert(objectToInsert, collectionName); ``` 使用`insertAll()`方法插入多个文档: ```java mongoTemplate.insertAll(listOfObjectsToInsert); ``` 2. 查询文档(查询数据): 使用`find()`方法查询文档: ```java mongoTemplate.find(query, Object.class, collectionName); ``` 查询所有文档: ```java mongoTemplate.findAll(Object.class, collectionName); ``` 3. 更新文档(修改数据): 使用`updateFirst()`方法更新单个文档: ```java mongoTemplate.updateFirst(query, update, Object.class, collectionName); ``` 使用`updateMulti()`方法更新多个文档: ```java mongoTemplate.updateMulti(query, update, Object.class, collectionName); ``` 4. 删除文档(删除数据): 使用`remove()`方法删除单个文档: ```java mongoTemplate.remove(query, Object.class, collectionName); ``` 使用`removeMulti()`方法删除多个文档: ```java mongoTemplate.remove(query, Object.class, collectionName); ``` 其中,`mongoTemplate`是你创建的MongoTemplate对象,`query`是查询条件,`update`是更新操作的内容,`Object.class`表示要查询或更新的文档类型,`collectionName`是集合名称。你可以根据自己的需求使用不同的查询条件和更新操作来完成相应的操作。具体的语法和选项可以参考Spring Data MongoDB的官方文档

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值