目 录CONTENT

文章目录

Mongoose简单使用步骤

俊阳IT知识库
2023-02-15 / 0 评论 / 1 点赞 / 389 阅读 / 898 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2023-02-15,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。
广告

文章已同步至掘金: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:'删除用户成功'
            })
        }
    })
})

//等等一系列方法

#_#

1

评论区