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()
