企业为什么建立企业网站,网上做调查赚钱的网站,体彩足球竞彩比赛结果韩国比分,中英文网站程序MongoDB基础知识点 1.MongoDB简介1.1基本信息1.2作用1.3下载 2.MongoDB安装1.Ubuntu22.042.Windows(非msi) 3.MongoDB基本操作1.基本概念2.MongoDB文件增删改查(CURD)1.插入数据2.查询数据3.修改数据4.删除数据5.删除字段 4.MongoDB实战管理系统数据库设计1.设计数据库2.Mongod… MongoDB基础知识点 1.MongoDB简介1.1基本信息1.2作用1.3下载 2.MongoDB安装1.Ubuntu22.042.Windows(非msi) 3.MongoDB基本操作1.基本概念2.MongoDB文件增删改查(CURD)1.插入数据2.查询数据3.修改数据4.删除数据5.删除字段 4.MongoDB实战管理系统数据库设计1.设计数据库2.Mongodb分页排序2.1排序2.2分页 3.MongoDB聚合查询4.MongoDB优化索引1.概括2.创建索引3.删除索引4.查看索引5.分析索引 5.MongoDB权限机制1.设置权限2.开启验证模式3.登录windows 6.MongoDB备份还原1.备份数据库2.还原数据库 1.MongoDB简介
1.1基本信息
基于分布式文件存储数据C语言编写支持的数据结构非常松散是类似json的bson格式(后期插入修改数据写JSON)
1.2作用
存放项目数据实战工作开发写API接口
1.3下载
MongoDB官网
2.MongoDB安装
1.Ubuntu22.04
Ubuntu22.04安装MongoDB7.0
2.Windows(非msi)
# 解压ZIP安装包# 创建服务(cmd管理员模式下进行 D:\mongodb\bin(根据自己实际情况来))
binmongod --install -dbpath D:\mongodb\data --logpath D:\mongodb\logs\mongodb.log
#######或############
binmongod --dbpath D:\mongodb\data --logpath D:\mongodb\logs\mongodb.log --logappend --serviceName MongoDB --auth --install # 启动服务
binnet start mongodb# 验证安装是否成功
binmongo# 删除服务
binmongod.exe --remove
###########或####################
binsc delete mongodb#关闭服务
net stop mongodb3.MongoDB基本操作
1.基本概念
查看数据库
show databases
# 或
show dbs创建数据库不建议使用单独命令创建数据库使用use隐式创建查看当前数据库
db选择数据库
use 数据库名称删除数据库通过use选择需要删除的数据库执行以下命令
db.dropDatabase()查看集合
show collections创建集合 capped: 布尔值指定是否创建固定。这种集合有大小限制一旦达到上限新的文档会覆盖旧的文档默认为’false’size指定固定集合的大小上限(字节数)只有在创建固定集合时才需要设置max: 指定固定集合的文档数上限只有在创建固定集合时才需要设置autoIndexId: 布尔值指定是否自动为’_id’字段创建索引默认为true 该字段与Mongodb3.6弃用其他字段建议参考官方文档
db.createCollection(集合名词,{capped: true,size: 5242880,max: 5000})删除集合
db.集合名称.drop()统计集合
db.集合名称.count()2.MongoDB文件增删改查(CURD)
1.插入数据
集合存在则直接插入数据集合不存在则隐式创建过时
db.集合名称.insert(json数据)insertOne 插入单个文档到集合 db.集合名词.insertOne({文档数据})insertMany 插入多个文档到集合中 db.集合名词.insertMany([{文档数据1},{文档数据2},{文档数据3},...])查看集合数据 mongodb会给插入的每条数据插入一个_id,_id的组成为时间戳(4)机器码(3)PID(2)计数器(3)可以自定义_id只需要在插入的数据中添加_id即覆盖(不推荐使用)
db.集合名称.find()插入多条数据(且数据量不大时)过时
db.集合名称.insert({},{},{})插入多条数据(且数据量较大时) 可以使用js语法mongodb底层采用的是JS引擎支持部分JS语法
for(var i 0;i 10; i){db.infoT.insert({uname: ai,age: i1})}2.查询数据
查看集合数据
db.集合名称.find(条件 [,查询的列])复合查询
db.集合名称.find({键:{运算符: 值}}运算符作用$gt大于$gte大于等于$lt小于$lte小于等于$ne不等于$inin$ninnot in
3.修改数据
修改数据 是否新增指条件匹配不到的数据插入(true是插入false不插入默认)是否修改多条: 指将匹配成功的数据都修改(true是默认是false)updateOne: 用于更新满足条件的第一个文档updateMany: 用于更新满足条件的所有文档
db.集合名称.update(条件,{修改器:{键: 值}})修改器作用$inc递增$rename重命名列$set修改列值$unset删除列 4.删除数据
deleteOne 用于删除满足条件的第一个文档 db.文档名称.deleteOne({条件})deleteMany 用于删除满足条件的所有文档 db.文档名称.deleteMany({条件})删除所有文档db.文档名称.deleteMany({})5.删除字段
聚合管道方式 fieldToDelete代表需要删除的字段
db.collection.aggregate([{ $project: {fieldToDelete: 0}},{$unset: [fieldToDelete]}
])
删除单个文档方式 _id用来定位要更新的文档fieldToDelete代表需要删除的字段
db.collection.updateOne({_id: docId},{$unset: {fieldToDelete: 1}})4.MongoDB实战管理系统数据库设计
1.设计数据库 确定功能模块所属集合 确定集合字段 UI设计稿每个展示内容对应一个字段创建字段更新字段状态字段 练习 需求:根据学生管理系统设置存放学生信息的集合并插入20条数据代码: 先中文 集合名词: 学生集合集合字段: 编号、学号、姓名、电话、性别、年龄、学历、备注 再英文
use studentInfoList;for(var num 0;num 30;num){db.student.insertOne({_id: num,no: KDnum,uname: 华中科技num,tel: 0218522num,sex: 女,age: num,edt: 研究生,remark: 勤奋好学})
};
db;
show collections;
db.student.find();2.Mongodb分页排序
2.1排序
升序排列集合中的数据
db.collection.find().sort({key: 1})降序排列集合中的数据
db.collection.find().sort({key: -1})指定排序字段并排除其他字段
db.collection.find({},{key: 1}).sort({key: 1})多字段进行排序
db.collection.find().sort({key1: 1,key2: -1})2.2分页
查询第一页的数据且每页包含2条数据
db.collection.find().sort({key: 1}).limit(2)查询第二页的数据每页包含2条数据,skip()函数指定从结果集中跳过的记录数
db.collection.find().sort({key: 1}).skip(2).limit(2)3.MongoDB聚合查询
db.collection.aggregate([{管道: {表达式}}
])常用管道
管道器说明$group将集合中的文档分组用于统计结果$match过滤数据只要输出符合条件的文档$sort聚合数据进一步排序$skip跳过指定文档数$limit限制集合数据返回文档数
常用表达式
表达式说明$sum总和 $sum: 1同count表示统计$avg平均$min最小值$max最大值 4.MongoDB优化索引
1.概括
说明 索引是一种排序的便于快速查询的数据结构 作用 实现数据的高效查询 优缺点 优点 提高数据查询的效率降低数据库的IO成本通过索引对数据进行排序降低数据排序成本降低CPU的消耗 缺点 占用磁盘空间大量索引影响SQL语句的效率每次插入或修改数据都需要更新索引
2.创建索引
创建单个索引语法 1代表升序 -1代表降序
db.collection.createIndex({key: 1})创建多个字段复合索引
db.collection.createIndex({key1: 1,key2: -1})添加唯一索引
db.collection.createIndex({key: 1},{unique: 字段名})添加索引并指定索引名词
db.collection.createIndex({key: 1},{name: 指定名称})3.删除索引
删除全部索引
db.collection.dropIndexes()删除指定索引
db.collection.dropIndex(索引名)4.查看索引
查看索引
db.collection.getIndexes()5.分析索引
分析索引 COLLESAN 全表扫描IXSCAN 索引扫描FETCH 根据索引去检索指定文档
db.collection.find().explain(executionStats)未添加索引进行分析索引
db.collection.find({age: 88888}).explain(executionStats)添加索引进行分析索引
db.stuInfo.createIndex({age: 1});
db.stuInfo.getIndexes();
db.stuInfo.find({age: 88888}).explain(executionStats)5.MongoDB权限机制
1.设置权限
use 数据库名称db.createUser({user: 账号,pwd: 密码,roles: [{role: 角色,db: 所属数据库}]
})角色种类说明root超级用户角色read、readwrite数据库用户角色dbAdmin、userAdmin数据库管理角色clusterAdmin、clusterManager、clusterMonitor、hostManager集群管理角色backup、restore备份恢复角色
2.开启验证模式
指用户需要输入账号密码才能登录使用
use admin
db.createUser({user: admin,pwd: 1234567,roles: [{role: root,db: admin}]
})安装需要身份验证的MongoDB服务windows
/binmongod.exe --install --dbpath D:\MongoDB\data --logpath D:\MongoDB\log\mongodb2.log --auth/binnet start mongodb3.登录windows
/bin mongo 服务器IP地址:端口/数据 -u 用户名 -p 密码或mongo
use 数据库名
db.auth(用户名密码)6.MongoDB备份还原
1.备份数据库
参数解析 port 数据库端口d 数据库(数据库不写则导出全局)o 备份数据放入指定目录
/binmongodump -h -port -u -p -d -o2.还原数据库
参数解析 d不写则还原全部数据
/binmongorestore -h -port -u -p -d --drop 备份数据目录