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:'刪除使用者成功'
})
}
})
})
//等等一系列方法
複製程式碼