mongoose模块化的步骤
- 第一步 封装
mongoose
连接mongodb
数据库的方法 - 第二步 封装
collection
结合对应模块的Model
- 第三步 使用
Model
封装链接方法
const mongoose= require("mongoose")
mongoose.connect("mongodb://127.0.0.1:27017/pmis", (err) => {
if (err) {
console.log(err)
return
} else {
console.log("数据库链接成功")
}
})
module.exports = mongoose
封装Model方法
const mongoose = require("./db.js")
var userSchema = mongoose.Schema({
name: String,
age: Number,
sex: Number
})
var UserModel = mongoose.model('User', userSchema, 'user')
module.exports = UserModel
使用Model方法
const UserModel = require("./user.js")
UserModel.findOneAndDelete({"name":"zhangsan11111"}, (err, data) => {
if(err) {
console.log(err)
return
}
console.log(data)
})
Model的静态方法和实例方法
拓展静态方法
- 为
schema
添加静态方法时通过statics
关键字添加
userSchema.statics.findByName = function (name, cb) {
this.find({"name":name}, (err, data) => {
cb(err, data)
})
}
UserModel.findByName('张三', (err, data) => {
if(err) {
console.log(err)
return
}
console.log(data)
})
拓展实例方法
- 为
schema
添加实例方法时通过methods
关键字添加(基本不用)
userSchema.methods.printName = function () {
console.log(this.name)
}
var user = new UserModel({
name: '张三',
loginName: 'zhangsan',
age: 20,
sex: 1
})
user.printName()