Mongoose 內置 CURD 方 法、擴展 Mongoose Model 的靜態方法和 實例方法
阿新 • • 發佈:2019-05-16
基本上 fault number upd 實例方法 方法 ODB log ejs
Mongoose 內置 CURD 方 法
Mongoose 內置 CURD 方 法文檔地址:https://mongoosejs.com/docs/queries.html
常用的方法如下:
Model.deleteMany()
Model.deleteOne()
Model.find()
Model.findById()
Model.findByIdAndDelete()
Model.findByIdAndRemove()
Model.findByIdAndUpdate()
Model.findOne()
Model.findOneAndDelete()
Model.findOneAndRemove()
Model.findOneAndUpdate()
Model.replaceOne()
Model.updateMany()
Model.updateOne()
擴展 Mongoose Model 的靜態方法和實例方法
需求:擴展一個通過name來查找的方法findByName(靜態方法)
const mongoose = require(‘mongoose‘); mongoose.connect(‘mongodb://127.0.0.1:27017/eggcms‘, { useNewUrlParser: true }, (err) => { if(err){return console.log(err); } console.log(‘數據庫連接成功‘) }); module.exports = mongoose
let mongoose = require(‘./db‘) let UserSchema = mongoose.Schema({ name: { type: String }, age: { type: Number }, status: { type: Number, default: 1 } }) // 靜態方法 UserSchema.statics.findByName = function(name, cb) { this.find({ "name": name }, (err, docs) => { cb(err, docs) }) } // 定義model操作數據庫 let UserModel = mongoose.model(‘User‘,UserSchema,‘users‘); module.exports = UserModel
let UserModel = require(‘./model/users‘) UserModel.findByName(‘黃中國‘, (err, docs) => { if (err) { return console.log(err) } console.log(docs) })
實例方法再工作中基本上不會使用,實例方法實例、
let mongoose = require(‘./db‘) let UserSchema = mongoose.Schema({ name: { type: String }, age: { type: Number }, status: { type: Number, default: 1 } }) // 實例方法(基本上不用) UserSchema.methods.print = function(name, cb) { console.log(‘實例方法‘) console.log(this.name) } // 定義model操作數據庫 let UserModel = mongoose.model(‘User‘,UserSchema,‘users‘); module.exports = UserModel
使用這個方法的時候需要創建具體的UserModel對象,然後通過這個對象來調用
let UserModel = require(‘./model/users‘) // 增加數據 let u = new UserModel({ name: ‘ 劉花 ‘, age: 21 }) u.print()
Mongoose 內置 CURD 方 法、擴展 Mongoose Model 的靜態方法和 實例方法