Mongoose簡單使用步驟

YXi發表於2019-09-03

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:'刪除使用者成功'
            })
        }
    })
})

//等等一系列方法
複製程式碼

#_#

相關文章