Mongodb概念与使用

一、概念

1、认识NoSQL?

NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。NoSQL用于超大规模数据的存储。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。

2、什么是MongoDB ?

MongoDB 是由C++语言编写的、是一个基于分布式文件存储的开源数据库系统。

  • MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
  • MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。
  • MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

二、可视化软件基本操作

1、创建数据库

use stu

如果数据库不存在,则创建数据库,否则切换到指定数据库。

注意:1、刚刚创建的数据库使用show dbs显示不出来,需要插入一些数据才能显示
2、MongoDB 中默认的数据库为test,如果你没有创建新的数据库,集合将存放在 test 数据库中。

2、显示数据库

show dbs

在这里插入图片描述

可以看见一共有三个数据库,其中前两个是默认的,zxh数据库是我之前建立的。刚新建 stu 数据库显示不出来,因为需要插入一些数据才能显示

3、删除数据库

db.dropDatabase(数据库名)

>db : 查看当前的数据库名

4、创建集合

db.createCollection("my")

5、删除集合

db.my.drop()

如果成功删除选定集合,则 drop() 方法返回 true,否则返回 false。

6、插入文档

在 MongoDB 中,你不需要创建集合。当你插入一些文档时,MongoDB 会自动创建集合。文档的数据结构和 JSON 基本一样。所有存储在集合中的数据都是 BSON 格式。
BSON 是一种类似 JSON 的二进制形式的存储格式,是 Binary JSON 的简称。
(1)单个插入

db.student.insert({name:'小王',age:22,gender:'男'});

(2)多个插入
需要传入数组,并在数组中放入对象

db.student.insert([{name:'小王',age:22,gender:'男'},
                   {name:'小刘',age:20,gender:'女'},
                    {name:'小班',age:21,gender:'女'}]);

在这里插入图片描述

由上图我们可以看出,当未声明 id 的时候,数据库会自动生成并且不会重复。其实_id 也可以自己指定,如果我们指定了数据库就不会添加了,但是如果自己指定必须确保_id是唯一的。

7、查询文档

db.collection_name.find()

_find() 用来查询集合中所有符合条件的文档
_find() 可以接收一个对象作为条件参数
{} 表示查询集合中所有的文档
{属性名:值}查询属性是指定值的文档
find返回的是数组,如下图所示,添加索引后输出第一个年龄为20的对象。

db.student.find({age:20})  
db.student.find({age:20})[0]

在这里插入图片描述

8、修改文档

MongoDB 使用 update() 方法来更新集合中的文档

db.collection.update(查询对象,新对象)

db.student.update({name:"小张"},{age:18});   //这种方式有风险

在这里插入图片描述
由结果看出,关于小张的任何信息都没有了,只剩下年龄为18,这是因为 _update() 默认情况下会使用新对象来替换旧的对象。
因此,如果只是需要修改指定的属性而不是替换,因此我们需要使用修改操作符。
$set 是用来修改属性

db.student.update({"_id" : ObjectId("61ceb4f502e7b11bd88da88d")},
                    {$set:{
                        name:"小张",
                        gender:"男",
                        address:"小寨"
                        }}
                    )

在这里插入图片描述
由图可以得到相应的属性都可以得到修改。
9、删除文档

MongoDB remove()函数是用来移除集合中的数据。在执行remove()函数前先执行find()命令来判断执行的条件是否正确

db.collection.remove()

比如删除名字为小张的这条对象

   db.student.remove({name:"小张"});

在这里插入图片描述
由图可以看到小张的这条对象已经消失

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值