MongoDB的基本操作(1)

简介

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

MongoDB是属于非关系型数据库一类的,在其中是属于文档数据库

三个概念

数据库(dataBase)
数据库是一个仓库,在仓库中可以存放集合
集合(Collection)
集合类似于数组,在集合中可以存放文档
文档(document)
文档数据库中的最小单位,我们存储和操作的内容都是文档

其实这种概念很像数据库、表、字段的关系

今日内容

对文档的增、删、改、查

对列表的操作

insert()
#该语句可以向集合添加一个或多个文档
db.collection.insert();

注意点:

  • 当我们向集合中插入文档时,如果没有给文档指定_id属性,则数据库会自动为文档添加下划线 _id该属性用来作为文档的唯一标识
  • _id也可以自己进行指定,但是需要注意的是,自己指定也需要确保它的唯一性
  • _id是根据时间戳和机器码生成的所以确保不会重复

添加一条数据

db.user.insert({name="张三",age="18",sex="男"});

添加多条数据

db.user.insert([{name="张三",age="18",sex="男"},
                {name="李四",age="20",sex="女"}],
                ....);

不需要自动生成的_id自己指定

db.user.insert({_id:"hello",name:"王五",age:"20",gender:"男"});

还有两个方法,是insert()进行细致的化分

  • insertOne() 插入一个文档对象
  • InsertMany() 插入多个文档对象
//插入一个文档对象
db.collection.insertOne()

//插入多个文档对象
db.collection.insertMany()
remove()

删除符合条件的所有文档(默认情况下会删除多个)

db.book.remove({title:"三国演义"})

在这里插入图片描述
因为有两个符合条件的数据,所以就删除了两个

deleteOne()
db.book.deleteOne({press:"人民出版社"})

修改前:
在这里插入图片描述
修改后:
在这里插入图片描述
并没有删除所有符合条件的,而是删除了第一个符合条件的字段

deleteMany()

删除多个符合条件的字段

db.book.deleteMany({data:"2019-1"})

修改前:
在这里插入图片描述
修改后:
在这里插入图片描述

drop()

直接删除集合

db.book.drop()

还有一种方式

db.book.remove({});
update()

在修改数据之前都需要将附加一个查询条件然后再修改

//修改查询到数据的值
db.collection.update(查询条件,新对象);

使用update()时默认情况下会使用新对象来替换旧的对象

db.book.update({title:"三国演义"},{data:"2021-11"});

虽然这个效果我演示不出来,不知道是版本比较高还是怎么的,但是在看尚硅系列视频时这样编写语句时,是会将整行的数据直接替换为data:"2021-11"这一个字段的
在这里插入图片描述
好像新版本的MongoDB强制了$符号的使用

这就不纠结了,那就讲讲$符吧

$Set

$Set修改文档中的指定属性
原数据:
在这里插入图片描述
1.修改单个数据

//修改单列数据
db.book.update({title:"三体"},{$set:{data:"2022-01"}})

修改后:
在这里插入图片描述
2.修改多个数据

//也可以修改多列数据
db.book.update({title:"三体"},{$set:{data:"2022-01"}})

修改后
在这里插入图片描述
3.配合查询的Criteria来使用(Criteria这个查询细讲)
修改前:
在这里插入图片描述

db.book.update({data:{$lt:"2019"}},{$set:{data:"2019-1"}});

修改后:
在这里插入图片描述

$unSet

$unSet 可以用来删除文档的指定属性
使用修改器 $unSet时,不管是后面是1还是其余的字符串都能删除该目标键

db.book.update({title:"三体2"},{$unset:{"data":1}});

修改后:
在这里插入图片描述

updateMany()

可以一次修改多个字段

db.book.updateMany({title:"三国演义"}, {$set:{data:"2022-3",press:"文学"}})

修改前:
在这里插入图片描述
修改后:
在这里插入图片描述

其实使用update也是可以完成修改多条数据的操作的
通过属性multi

db.book.update(
{title:"三国演义"},
{$set:{press:"国学经典"}},
{multi:true}
)

在这里插入图片描述

replaceOne()

替换原先的数据

db.book.replaceOne({title:"西游记"},{title:"西游记2",press:"名著",data:"2001-11"})

在这里插入图片描述

find()

查询所有

db.book.find();  #返回的是一个数组

在这里插入图片描述

  1. find()用来查询所有符合条件的文档
  2. find()可以接收一个对象作为条件查询
  3. {}表示查询集合中的所有文档
条件查询

单个条件查询

db.book.find({title:"第一行代码"})

在这里插入图片描述
多个条件一起查询

db.book.find({press:"人民出版社",title:"水浒传"})

在这里插入图片描述

findOne()

查询集合中符合条件的第一个文档对象

db.book.findOne()
count()

查询集合中数据的总条数

db.book.count()

在这里插入图片描述

这章就先简单介绍一下mongoDB简单的CRUD操作,下一章会着重介绍MongoDB的查询操作
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值