mongoose
概念
在代码中连接并且操作MongoDB的插件
node中可以使用原生代码对MongoDB进行连接和操控,但是很麻烦,因此直接选择使用mongoose插件
局部下载安装
npm i mongoose
mongoose类型
String、Number、Object、Array
mongoose使用–增删改
//引入mongoose对象
let mongoose=require('mongoose');
let url="mongodb://localhost:27017/stu_sys_80"
//连接数据库
mongoose.connect(url)
//监听
mongoose.connection.on("connected",()=>{
console.log("数据库已连接");
})
//创建约束Schema
let Schema=mongoose.Schema;
//获得具体的约束对象
let usersSchema=new Schema({
username:String,
password:String
},{versionKey:false})
//versionKey:false :避免产生无意义字段
//获得model模型
//参数1 :自定义名字(连表查询有关)
//参数2 :具体的约束对象
//参数3 : 集合名
let usersModel=mongoose.model("xx",usersSchema,"users")
//crud操作
// 添加
async function add(){
let res=await usersModel.create({
username:"aaa",
password:"222"
})
console.log(res);//添加成功后的那个对象包含了_id
if(res&&res._id){
console.log("成功");
}
}
add();
//删除
async function del(){
let res=await usersModel.deleteOne({_id:"62e498efe26137f211d3c35b"})
console.log(res);//{ acknowledged: true, deletedCount: 1 }
if(res.deletedCount==1){
console.log("成功");
}
}
// del();
//修改
async function upd(){
let res=await usersModel.updateOne({_id:"62e49a456db99e4f21c9e5c9"},{username:"CCC"})
console.log(res);
if(res.modifiedCount==1){
console.log("成功");
}
// {
// acknowledged: true,
// modifiedCount: 1,
// upsertedId: null,
// upsertedCount: 0,
// matchedCount: 1
// }
}
upd()
mongoose使用–查询
async function find(){
let res=await usersModel.find({username:"aaa"})
console.log(res);
}
find()
express中引用mongoose操作数据库
项目结构:
public 前端资源
routes
users.js -->路由文件
controllers
usersController.js --->业务(请求、处理数据、响应)
models
usersModel.js---->mongodb模型约束
utils
db.js --->连接数据库
app.js :入口文件
app.js 引入了 db.js
引入了 routes/user.js
路由文件routes/user.js 引入了 业务文件../controllers/usersController
业务文件../controllers/usersController 引入了模型文件 ../models/usersModel
模型文件 ../models/usersModel 引入了 require('mongoose');

被折叠的 条评论
为什么被折叠?



