mongoDB
mongo就是基于json的数据库
安装&启动:
- 解压mongodb-win32-x86_64-2008plus-ssl-3.6.11.zip文件,bin文件夹里有:mongo.exe(客户端) 和 mongod.exe(服务器端)
- 安装mongDBCompass软件:图形化界面
启动:
在bin文件夹中打开cmd:输入:.\mongod.exe --dbpath=保存数据的文件夹的绝对路径 - 开启服务器 再打开一个cmd:输入:.\mongo.exe - 开启客户端
mongo的语法(客户端cmd输入)
数据库的操作
- 查询所有数据库:show dbs
- 创建/切换数据库:use 数据库名称(没有则创建,有则切换:)
- 查看当前选中的数据库:db
- 删除数据库:db.dropDatabase()
数据表的操作
-
创建数据表:
db.createCollection("表名") // 创建有限制的数据表 db.createCollection("表名",{size:xxx(KB),capped:true,max:5000}); - 最大存储空间为xxx,最多存储5000个 -
查看目前所有的数据表:
db.getCollectionNames(); -
删除数据表:db.表名.drop();
数据的操作
1、增
db.表名.save({键值对,...}) - 一次只能插入一条数据
db.表名.save([{},{},{},{},....]) - 一次插入多条数据
2、删
db.表名.remove({})
db.表名.remove({条件})
// 条件也是键值对,
比如: db.user.remove({name:"paoge1"}) - 会删除数据表中name叫做paoge1的所有数据
3、改
db.表名.update({条件},{$set:{新内容}})
举例:db.user.update({name:"zhaoxiao"},{$set:{age:65,pwd:"222222"}})
4、查
// 找所有
db.表名.find();
// 找到所有密码为666666的数据
db.表名.find({pwd:"666666"});
// 找到所有的数据,但是只返回name和pwd
db.表名.find({},{name:1,pwd:1});
// 排序
db.表名.find().sort({age:1}); - 按age升序排列!
//筛选
db.表名.find({age:{$gte:18}})
gt大于 gte大于等于 lt小于 lte小于等于(获取成年人)
// 模糊查询
db.表名.find({name:/o/})
// 跳取
db.表名.find().skip(5).limit(5) - 跳过前5条,在拿5条数据,理解为5-10条数据(点击分页条应该拿到哪些数据)
// 获取数据表的长度(分页)
db.表名.find().count()
Node.js连接数据库
// 引入mongoose模块
var mongoose=require("mongoose");
// 连接数据库
mongoose.connect("mongodb://127.0.0.1/h52302");
// 创建出一个新的数据表的同时,设置数据类型的控制
var UserSchema=mongoose.Schema({
name:String,
pwd:String,
age:Number,
email:String,
vip:String
})
// 模型名 数据的控制 表名,没有则为创建,有了则为选中!
var User=mongoose.model("User",UserSchema,"user")
增
// 创建要插入的对象
var x=new User({
name:"袍哥1",
pwd:"123456",
age:"123",
email:"pg@qq.com",
vip:"1"
})
// 创建好的对象插入到数据表中
x.save().then(()=>{
插入完毕要做的操作
})
删
User.deleteOne/deleteMany({条件}).then(()=>{
删除完毕要做的操作
})
改
User.updateOne/updateMany({条件}).then(()=>{
修改完毕要做的操作
})
查
User.find({条件}).then((rs)=>{
rs->查询到的数据
})