持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第16天,点击查看活动详情
一。数据库
1.什么是数据库
①。动态网页的数据都是存储在数据库中的
②。可以用来持久存储客户端通过表单收集的用户信息
③。可以对数据进行高效的管理
④。数据库就是数据的仓库,将数据进行分类有序的存储,通过API操作数据
2.数据库分类
(1)关系型数据库:
①关系型全都是 表
②。MySQL,Oracle,SQL Server
(2)非关系型数据库
①。MongoDB:
MongoDB 是为快速开发互联网Web应用而设计的数据库系统
数据库中存的是各种各样的JSON文件(BSON 二进制的)
更贴近前端编写习惯,容易上手
②。文档数据库
二。下载网址
三。安装
1.配置环境变量
①。(找到自己的安装路径)并复制
②。打开这个程序
show dbs (databases) 查看当前所有数据库
这几个文件默认的
db 当前数据库
show collections 查看当前数据库中所有的集合
db.集合名称.insert({name:"张三",age:23,sex:"男"}) 往集合中添加数据,如果集合不存在则自动创建
db.集合名称.find( ) 查看集合中的所有数据 ==>
db.集合名称.find( ).pretty( )
四。使用
1.数据库database :数据库是一个仓库,存放集合
2.集合collection :集合类似数组,集合中存放文档
3.文档document :文档中的数据,存储和操作内容
4.字段filed :文档中属性的名称
5.使用方式
①。在命令行中操作MongoDB
②。可视化图形工具中操作
③。通过后端代码去操作
6.安装第三方包
npm install mongoose
五。使用步骤
1:导入mongoose
2:使用 mongoose 连接 MongoDB
如果连接成功,则执行then()方法,失败则执行catch()方法
mongoose.connect("mongodb://127.0.0.1/myserver")
.then(()=>{
console.log("数据库链接成功");
})
.catch((err)=>{
console.log("数据库链接失败",err);
})
3:创建集合(集合就是表)
3-1创建集合的规则
let inforSchema = new mongoose.Schema({
name:String,
age:Number,
sex:String
})
3-2创建表
第一个参数是表名,第二个是 规则
let student = mongoose.model("student",inforSchema)
4:创建文档
4-1 第一种:创建文档数据
// let s1 = new student({
// name:"郑秀妍",
// age:26,
// sex:"女"
// })
4-2保存文档
// s1.save((err,result)=>{
// console.log(err);
// console.log(result);
// })
4-3:第二种 创建文档数据及保存文档
创建文档数据及保存文档
student.create({
name:"谭维维",
age:28,
sex:"女"
}).then(ret=>{
console.log(ret);
}).catch(err=>{
console.log(err);
})
操作添加数据之前
操作添加数据之后
5.查询
5-1: find() 无参查询所有数据
students.find().then(res=>{
console.log(res)
})
5-2: find(参数) 有参查找指定数据
students.find({name:"谭大维"}).then(res=>{
console.log(res);
})
5-3:select() 查询指定的数据,返回值是数组
students.find({name:"王心凌"}).select("name age").then(res=>{
console.log(res)
})
5-4 findOne() 查询指定的一个数据,返回值是对象,如果有参则返回匹配的那个数据,如果没有则返回数据库第一条数据
students.findOne({name:"王心凌"}).select("name age").then(res=>{
console.log(res)
})
数据库有两个王心凌,因为用了findOne(),所以只会显示第一条
5-5查看范围 大于lt 大于等于lte -_id 表示去除系统自带的 id
students.find({age:{$gte:20,$lte:25}}).select("name age -_id").then(res=>{
console.log(res)
})
5-6查询包含的数据 regex() 正则
students.find({name:{$regex:/维/}}).select("name age -_id").then(res=>{
console.log(res)
})
5-7 all 用于查看包含的数据
students.find({hobbies:{$in:["唱歌"]}}).select("name age hobbies -_id").then(res=>{
console.log(res)
})