Mongoose 内置 CURD 方 法、扩展 Mongoose Model 的静态方法和 实例方法
Mongoose 内置 CURD 方 法
Mongoose 内置 CURD 方 法文档地址:https://mongoosejs.com/docs/queries.html
常用的方法如下:
扩展 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()