mongoDB数据库

MongoDB概述

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

MongoDB服务端可运行在Linux、Windows平台,支持32位和64位应用,默认端口为27017。
推荐运行在64位平台,因为MongoDB在32位模式运行时支持的最大文件尺寸为2GB。

NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。

NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。

安装和启动

下载安装


MongoDB Community Download | MongoDB

mongoDB数据库_第1张图片

 安装完成后添加到系统环境变量

将bin目录所在位置配置为环境变量

C:\Program Files\MongoDB\Server\5.0\bin

在cmd中输入mongod出现信息则安装成功

mongodb默认的端口:27017

浏览器打开http://localhost:27017/

 

代表 mongodb服务已经启动了

在服务也能看到

安装MongoDB图形化界面

https://studio3t.com/download

使用

基本使用

show dbs 或show databases
查看所有的数据库
use xxx
切换到指定的数据库
db
查看当前操作的数据库
show collections
查看当前数据库中所有的集合

 数据库的CRUD操作

db表示的是当前操作的数据库
collectionName表示操作的集合,若没有,则会自动创建

插入的文档如果没有手动提供_id属性,则会自动创建一个

插入多条数据

插入数据

插入一条数据

db.collectionName.insertOne( {name:'cxk',like:['唱','跳','rap','篮球']} )

插入多条数据

用数组放入一个个对象

db.collectionName.insertMany( [ 
{name:'cxk',like:['唱','跳','rap','篮球']},
{{name:'wyf',like:'踩缝纫机'}}
] )

可以插入一个或多个

db.collectionName.insert()

查询数据

db.collectionName.find()

查询集合所有的文档,即所有的数据。
查询到的是整个数组对象。在最外层是有一个对象包裹起来的。

条件查询

db.collectionName.find({name:"蔡徐坤"})

结果返回的是一个【数组】,可以在后面直接取索引下标

查找第一个

db.collectionName.findOne() 

返回的是查询到的对象数组中的第一个对象(返回的是对象)

查询文档个数

db.collectionName.count

查询操作符的使用

比较操作符
$gt 大于
$gte 大于等于
$lt 小于
$lte 小于等于
$ne 不等于
$eq 等于的另一种写法
$or 或者

// 大于200
db.users.find({num:{$gt:200}})
// 大于200且小于300
db.users.find({num:{$gt:200,$lt:300}}) 

//大于300或小于200
db.users.find(
    {
        $or:[
            {num:{$gt:300}},
            {num:{$lt:200}}
        ]
    }
)  

分页查询

db.users.find().limit(10) // 前10条数据
db.users.find().skip(10).limit(10) // 跳过前10条数据,即查询的是第11-20条数据

排序

find查询结果默认是id升序排序查询的

skip,limit,sort可以以任意的顺序调用,最终的结果都是先调sort,再调skip,最后调limit

// 1表示升序排列,-1表示降序排列
db.my.find().sort({_id:1}) 
// 先按照_id升序排列,如果遇到相同的_id,则按count降序排列
db.my.find().sort({_id:1,count:-1}) 
db.my.find().skip(10).limit(10).sort({_id:1,count:-1}) 

修改数据

替换整个文档

db.collectionName.update(condiction,newDocument)

修改对应的属性,需要用到修改操作符,比如$set,$unset,$push,$addToSet $pop 

db.collectionName.update(
	{_id:1},	// 查询条件
	{
		// 修改对应的属性
		$set:{ 
			name:'wyf',
			like:'大碗宽面'
		}
		// 删除对应的[属性]
		$unset:{
			life:1 //这里的1可以随便改为其他的值,无影响
		}
		
	}
)

update默认与updateOne()等效,即对于匹配到的文档只更改其中的第一个
updateMany()可以用来更改匹配到的所有文档

db.students.updateMany(
	{name:'cxk'},
	{
		$set:{
			age:25,
			like:''背带裤
		}
	}
)

向数组中添加数据$push

db.users.update({name:'蔡徐坤'},{$push:{"song":'鸡你太美'}})

// 如果数据已经存在,则不会添加
db.users.update({name:'yk'},{$addToSet:{"song":'鸡你太美'}})

自增自减操作符$inc

// 让num自增1
{$inc:{num:1}} 
// 让num自减1
{$inc:{num:-1}} 
// 给工资低于1000的员工增加400的工资
db.emp.updateMany({sal:{$lt:1000}},{$inc:{sal:400}}) 

删除数据

db.collectionName.remove() 

remove默认会删除所有匹配的文档。相当于deleteMany()
remove可以加第二个参数,表示只删除匹配到的第一个文档。此时相当于deleteOne()

db.my.remove({name:'蔡徐坤',true})
db.collectionName.deleteOne()
db.collectionName.deleteMany()

删除所有数据

db.my.remove({})

删除集合

db.my.drop()

删除数据库

db.dropDatabase()

注意:删除某一个文档的属性,应该用update。
remove以及delete系列删除的是整个文档

你可能感兴趣的:(数据库,mongodb,nosql)