文章已同步至掘金:https://juejin.cn/post/6844903934293721096
欢迎访问😃,有任何问题都可留言评论哦~
1. 安装
npm install mongoose
2. 引入
在需要使用的 JS文件 中引入
const mongoose = require("mongoose")
3.建立连接
mongoose.connect('mongodb://127.0.0.1:27017/MyServer', { useNewUrlParser: true }).then(() => {
console.log(`数据库连接成功...`);
}).catch(err => {
console.log(err);
})
4. 定义Schema
定义一个Schema,它需要和你最终在数据库中创建的字段保持一样
const Schema = mongoose.Schema
const UserSchema = new Schema({
username:{
type:String,
required:true
},
age:{
type:Number,
default:18
},
status:Number
})
required
参数表示必填default
参数表示默认值
4. 创建model
let User = mongoose.model('User',UserSchema,'users')
如果没有第三个参数,则数据库的集合名是第一个参数的首字母小写,并且后面加个 s
例如:let User = mongoose.model('User',UserSchema)
集合名就是users
如果设置了第三个参数,则集合名就是第三个参数
5. 实例化model
在实例化的时候在集合中填充数据
let u = new User({
username:"ming",
age:100,
status:1
})
6. 保存数据到数据库
在以上步骤中,均不会创建这个数据库,只有调用save
后,才会创建这个数据库
添加数据
u.save(err=>{
if(err){
console.log(err);
}
console.log("数据保存成功...");
})
每save
一次,插一条数据
查询数据
注意:查询、更新、删除 都是根据 model
来执行的,并不是根据实例化后的变量来执行,而添加则是根据实例化后的变量来执行的
User.find({},(err,data)=>{
if(err) console.log(err);
console.log(data);
})
更新数据
User.updateOne({'_id':'5d6d076bd629802334e3707d'},{'username':'qiang'},(err,data)=>{
if(err) console.log(err);
console.log(data);
})
删除数据
User.deleteOne({'_id':'5d6d076bd629802334e3707d'},(err,data)=>{
if(err) console.log(err);
console.log(data);
})
其他
关于 增、删、改、查,里面涉及了很多方法,这里就不一一列举了,这里只是简单的介绍一下使用步骤
但是在平常做项目的时候,并不会这样使用,都是把mongoose
模块化来使用
通常我们都是:
1. 在JS入口文件server.js
里 导入,并连接数据库
const mongoose = require('mongoose')
//连接数据库
mongoose.connect('mongodb://127.0.0.1:27017/DjServer', { useNewUrlParser: true }).then(() => {
console.log(`数据库连接成功...`);
}).catch(err => {
console.log(err);
})
2. 然后新建一个文件夹model
,用来存放我们每个模块定义的Schema
,并根据项目需要设置字段并导出
这是我在model文件夹里创建的User.js
文件
const mongoose = require('mongoose')
const Schema = mongoose.Schema
const UserSchema = new Schema({
name:{
type:String,
required:true
},
email:{
type:String,
required:true
},
password:{
type:String,
required:true
},
})
const User = mongoose.model('User',UserSchema)
module.exports = User
3. 最后在我们的api
下面的接口的JS文件里导入model
文件夹里的JS文件, 实例化model
,并使用 增、删、改、查,等一系列方法
这是我在api文件夹下面创建的users.js
//导入上面的User
const User = require('../../model/User')
//然后使用
//添加用户接口
router.post('/add',(req,res)=>{
let users = {}
users.name = req.body.name
users.email = req.body.email
users.password = req.body.password
new User(users).save().then(data=>{
res.json(data)
})
})
//删除用户接口
router.get('/delete/:id',(req,res)=>{
User.findOneAndDelete({_id:req.params.id}).then(data=>{
if(data){
res.json({
code:1,
msg:'删除用户成功'
})
}
})
})
//等等一系列方法
评论区