MongoDB

本文详细介绍了MongoDB的概念,包括其文档结构、安装过程、图形化界面MongoDBCompass、基本的SQL语法转换以及Mongoose在前端开发中的使用。涵盖了安装、插入、查询、更新、删除和分页排序等操作,适合初学者和开发者学习和实践。
摘要由CSDN通过智能技术生成

传送门

SpringMVC的源码解析(精品)
Spring6的源码解析(精品)
SpringBoot3框架(精品)
MyBatis框架(精品)
MyBatis-Plus
SpringDataJPA
SpringCloudNetflix
SpringCloudAlibaba(精品)
Shiro
SpringSecurity
java的LOG日志框架
Activiti(敬请期待)
JDK8新特性
JDK9新特性
JDK10新特性
JDK11新特性
JDK12新特性
JDK13新特性
JDK14新特性
JDK15新特性
JDK16新特性
JDK17新特性
JDK18新特性
JDK19新特性
JDK20新特性
JDK21新特性
其他技术文章传送门入口

一、概念

1、概念

MongoDB是一种开源的非关系型数据库,使用JSON样式的文档进行数据存储。它是一个面向文档的数据库,文档是由键值对组成的,类似于JSON格式的数据。MongoDB将数据存储在灵活的文档集合中,这意味着每个文档可以有不同的结构。它支持动态查询,索引和高度可伸缩的部署,可在大型数据集上提供高性能。MongoDB还具有分布式的特性,可以在多个服务器上进行数据存储和访问。由于其灵活性和可伸缩性,MongoDB被广泛用于开发Web应用程序、大数据分析、物联网和许多其他领域。
在这里插入图片描述
二级制json就是BSON,可以认为json的加强版,可以存二进制。我们使用的时候当成json就可以了。MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。MongoDB数据库中的常用述语:
1、在MongoDB中,数据库是以文件形式存储的,数据库目录中存储了相应的数据库!
2、在MongoDB中,把传统数据库中的 “表” 叫作:Collections “集合”!
3、在MongoDB中,向集合存储数据时,直接以JSON格式,进行存取操作!
4、在MongoDB中,集合中的数据叫作:Documents “文档”!

在这里插入图片描述
MongoDB 可在高负载的情况下,添加更多的节点,可以保证服务器性能。

MongoDB 可为Web应用提供可扩展的高性能数据存储解决方案。

MongoDB 将数据存储在灵活的json文档中,这意味着可以直接得到从文档到文档的数据、结构等。

MongoDB 是免费使用的(MongoDB分 社区版[在所有环境下都免费] 和 企业版[在开发环境免费,生产环境收费]两个版本)。

MongoDB 数据库具有可伸缩性和灵活性,可帮助你快速查询和索引你需要数据。

在这里插入图片描述
https://www.mongodb.com/ 主官网
注意:偶数版本为稳定版,例如3.2这种也是稳定版,并不是看大版本。
https://www.mongodb.com/try/download/community 下载地址

参考文章:
精品文章:https://blog.csdn.net/muguli2008/article/details/80591256
他人尚硅谷学习文章:https://blog.csdn.net/lyyrhf/article/details/115469161

2、安装

https://www.mongodb.com/try/download/community
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
MongoDB的安装非常简单,在下载完成后,接直接双击下载好的MongoDB安装包,进入MongoDB安装界面,点击Next下一步、同意条款、选择安装路径 和 日志路径、勾选是否安装MongoDB Compass(MongoDB数据库图形管理工具,类似MySQL的Navicat ),其它的步骤一直点下一步直到完成安装就OK啦。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后就一直下一步、Next 直到 Flnish 安装完毕,到此就MongoDB就安装结束啦! 肯定勾上。
在这里插入图片描述

3、图形化界面单独安装(额外扩展,默认有了)

https://www.mongodb.com/try/download/compass
在这里插入图片描述
注意事项:在MongoDB Compass选择下载时,可选择对应的系统版本(这里以windows系统为例):
zip绿色版(免安装,解压后就可以用)
msi安装版(Windows Installer的数据包,需要一步步安装到本地)
exe安装版(可执行文件,需要一步步安装到本地)
在这里插入图片描述
在这里插入图片描述
MongoDB数据库的图形化的数据库管理工具,可以在这里面对数据进行很友好的操作:如查看、编辑、导入、导出等相应的。
在这里插入图片描述

4、运行

在命令窗口中,输入 mongo 回车, 就进入了MongoDB数据库的语法环境了!
注:安装好MongoDB数据库后,默认是【非授权模式】(也就是不需要任何权限验证,直接在命令窗口中输入 mongo 回车,就连接上了)。
MongoDB默认IP 和 端口是:mongodb://127.0.0.1:27017 或 mongodb://localhost:27017
在这里插入图片描述
配置MongoDB全局环境变量(就是在电脑中任何地方都可以合用mongo、mongod等命令)!注:配置完成后,重启电脑, 环境变量才生效哦!重启后,我们就能在系统的任何位置,使用mongo命令了:(实际测试中不用重启电脑,所以文章和学习一定要自己实操。)
查看MongoDB数据库存的版本:
mongod -version

// 该命令会显示MongoDB数据库的相关信息,如果能显示信息,就表示已安装成功了!!!
在这里插入图片描述
在这里插入图片描述
没有重启
在这里插入图片描述
输入mongo直接进入命令行模式了
在这里插入图片描述
在这里插入图片描述
不用手动创建数据库和集合(表),use xxx直接就到了xxx数据库了,只有插入文档(数据),就能显式查看数据
在这里插入图片描述
插入
在这里插入图片描述
刷新一下就有了
在这里插入图片描述
同上,刷新一下就有了
在这里插入图片描述

二、语法

1、插入

可以自己指定_id,但是也是需要唯一,所以建议用默认的
在这里插入图片描述
在这里插入图片描述
Many那个里面哪怕插入一个,也必须是数组。
在这里插入图片描述

2、查询

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、更新

根据查询条件修改整个join,新json是什么,就是第二个参数。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述update默认只改一个,加上上面的属性才改多个(这是个坑)
在这里插入图片描述

4、删除

在这里插入图片描述
在这里插入图片描述

5、分页

参考视频地址:
https://www.bilibili.com/video/BV18s411E78K/?p=11&spm_id_from=pageDriver&vd_source=2648f6e2ee4120def879a597b5d20fae

在这里插入图片描述
在这里插入图片描述

6、排序

sort和投影
find()查询文档时,默认情况是按照_id的值进行升序排列

sort()可以用来指定文档的排序的规则,需要传递一个属性来指定排序规则,1表示升序,-1表示降序

db.users.find({}).sort({sale:1})
db.users.find({}).sort({sale:1,qq:1}) //先指定sale的升序 再qq的降序

limit、skip、sort可以任意顺序的调用

查询时,我们可以在第二个参数的位置来设置查询结果的投影

db.users.find({},{sale:1})

7、综合练习

//添加两万条数据的性能高,尽量少调用系统的方法
var arr=[];
for(var i=1;i<=20000;i++){
    arr.push({num:i});
}
db.user.insert(arr);



//查询numbers中num大于5000的文档
db.unmbers.find({num:{$gt:500}})

//查询numbers中num小于30的文档
db.unmbers.find({num:{$lt:500}})

//查询numbers中num大于40小于50的文档
db.numbers.find({num:{$gt:40,$lt:50}})

//查询numbers前10条的数据
db.numbers.find({num:{$lte:10}})

//limit()设置显示数据的上限
db.numbers.find().limit(10)

//查询numbers中第11条到20条的数据
	//skip()用于跳过指定数量的数据   skip( (页码-1)*每页显示的条数 ).limit(每页显示的条数)
	//MongoDB会自动调整limit()和skip()的位置
db.numbers.find().skip(10).limit(10)
db.numbers.find().limit(10).skip(10)

三、mongoose

概念(前端使用)
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝影铁哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值