2023-6-2(第二十三天)

86 阅读2分钟

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输入)

数据库的操作
  1. 查询所有数据库:show dbs
  2. 创建/切换数据库:use 数据库名称(没有则创建,有则切换:)
  3. 查看当前选中的数据库:db
  4. 删除数据库:db.dropDatabase()
数据表的操作
  1. 创建数据表:

    db.createCollection("表名")
    // 创建有限制的数据表
    db.createCollection("表名",{size:xxx(KB),capped:true,max:5000}); - 最大存储空间为xxx,最多存储5000
  2. 查看目前所有的数据表:

    db.getCollectionNames();
    
  3. 删除数据表: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->查询到的数据
})