数据库的介绍
1.1 保存数据的方案
数据在内存 优点:读取数据非常快 缺点:一旦程序关系,数据丢失
数据在文件 优点:文件可以持久保存 缺点:修改数据频繁覆盖文件
数据在数据库 优点:持久保存 管理数据很方便
1.2 数据库的分类
关系型数据库:Oracle Mysql Sqlserver DB2 。数据存在硬盘,查询会相对慢
非关系型数据库:Mongodb Redis HBase。数据在内存,查询会比较快,适合海量数据。
Mongodb的介绍
Mongodb : 最像关系型数据库的非关系型数据库
关系型数据库:
- 数据库
- 表
- 表数据
Mongodb:
- 数据库
- 集合
- 文档
1.mongodb安装
点击安装包傻瓜式的安装 注意不要勾选 compass
安装完毕之后配置环境变量
在c盘根目录下创建data/db文件夹
使用mongod命令来启动mongdb数据库。端口:27017
安装nosqlbooster
使用nosqlbooster连接mongodb数据库
在nosqlbooster中写命令
2.mongodb的常用命令
1 | show dbs //显示当前mongodb中的所有数据库 |
3.mongodb的查询操作
1 | mongoimport –d 数据库的文字 –c 集合的名字 文件名 |
4. mongoose的使用
https://mongoosejs.com/docs/api/model.html
1 | //1.引入mongoose |
5.mongoose的常用方法
1 | app.get("/index",(req,res)=>{ |
//Model.find({name:"zhangsan"}) 根据条件查询数据(返回所有符合条件的数据 数组)
// Student.find({name:"小明"})
// .then(function(data){
// res.json(data);
// },function(err){
// res.send("err");
// })
//Model.findOne({}) 查询符合条件的数据(只返回一条)
// Student.findOne({name:"小明"})
// .then(function(data){
// res.json(data);
// },function(err){
// res.send("err");
// })
//Student.findById("") 根据主键查询指定信息
// Student.findById("5da57082de29900f18144831")
// .then(function(data){
// res.json(data);
// })
//Student.findByIdAndUpdate("") 根据id找,找到之后修改
// Student.findByIdAndUpdate("5da57082de29900f18144831",{$set:{name:"tt"}})
// .then(function(data){
// res.json(data);
// })
//Student.findByIdAndDelete("") 根据id找,找到之后删除
// Student.findByIdAndDelete("5da57082de29900f18144831")
// .then(function(data){
// //data删除的那个元素
// res.json(data);
// })
// Student.findOne({$or:[{name:"小明"},{age:23}]}) 两个条件有任何一个满足返回结果
// Student.findOne({$or:[{name:"小明"},{age:23}]})
// .then(function(data){
// res.json(data);
// })
// 分页查询
// Student.find()
// .skip(1)
// .limit(2)
// .then(function(data){
// res.json(data);
// })
// 找age>1 并且age<110的
// Student.find({age: {$gte: 1, $lte: 110}})
// .then(function(data){
// res.json(data);
// })
//where来指定查询条件
// Student
// .where("age").gte(1).lte(110)
// .where("name","小明")
// .then(function(data){
// res.json(data);
// })
Student.update({name:"小明"},{$set:{name:"xiaohuang"}})
.then(function(data){
//修改成功的一些状态信息
res.json(data);
},function(err){
console.log(err);
})
})
向数据库新增一个学生
app.get("/addStu",(req,res)=>{
var stu = new Student({
_id: new mongoose.Types.ObjectId(),
name: "小白",
age: 20,
email: "11@qq.com",
birthday: new Date(),
adult: false,
message: [{address:"无锡"},12,"我是帅哥"],
hobbies: ["足球","篮球"],
scores: [{subject: "语文",score:66},{subject: "数学",score:99}],
sex:1
});
//Model对象.save() 入库
stu.save()
.then(function(data){
//保存数据成功之后会将保存成功的用户返回来
res.json(data);
},function(err){
res.json(err);
})
})