Mongoose 内置 CURD 方 法、扩展 Mongoose Model 的静态方法和 实例方法
2024-09-03 01:53:15
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()
最新文章
- ASP.NET中常用的优化性能的方法
- jQuery Countdown Timer 倒计时效果
- 使用vim 查看二进制文件
- HDU 1693 二进制表示的简单插头dp
- C# 添加,修改,删除文件夹/文件集合
- Smallest Rectangle Enclosing Black Pixels 解答
- 用DOS命令获取文件列表
- 配置 Apache 的虚拟主机
- php中foreach中使用&;的办法
- [转]【Java】内部类(Inner Class)如何创建(new)
- 07_mysql常用sql语句
- java——初识
- Python程序打包之PyInstaller
- iOS开发之--cocopods相关问题及解决方法
- Python——dict(自定义类作key)
- Points on Cycle (hdu1700,几何)
- 个人作业Week2-代码复审
- Pytorch之CrossEntropyLoss() 与 NLLLoss() 的区别
- Scala系统学习(一):Scala概述
- Object -c基础知识(5)--release 之后 retainCount为何为1
热门文章
- jQuery---jq操作标签文本(html(),text()),jq操作文档标签(插入,删除,修改),克隆,,jq操作属性,jq操作class属性,jq操作表单value,jq操作css,jq操作盒子(重要),jq操作滚动条
- React Children 使用
- iOS静态库转Framework动态库
- 将exe和dll打包为一个exe文件
- linux基础命令学习
- RabbitMQ基本概念(四)-服务详细配置与日常监控管理
- ajax加载验证码这样不断刷新的文件无法刷新问题
- Vue.js学习-组件注册与使用
- 为什么要将action实例设置为多例
- Prometheus学习笔记(5)Grafana可视化展示