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

最新文章

  1. ASP.NET中常用的优化性能的方法
  2. jQuery Countdown Timer 倒计时效果
  3. 使用vim 查看二进制文件
  4. HDU 1693 二进制表示的简单插头dp
  5. C# 添加,修改,删除文件夹/文件集合
  6. Smallest Rectangle Enclosing Black Pixels 解答
  7. 用DOS命令获取文件列表
  8. 配置 Apache 的虚拟主机
  9. php中foreach中使用&的办法
  10. [转]【Java】内部类(Inner Class)如何创建(new)
  11. 07_mysql常用sql语句
  12. java——初识
  13. Python程序打包之PyInstaller
  14. iOS开发之--cocopods相关问题及解决方法
  15. Python——dict(自定义类作key)
  16. Points on Cycle (hdu1700,几何)
  17. 个人作业Week2-代码复审
  18. Pytorch之CrossEntropyLoss() 与 NLLLoss() 的区别
  19. Scala系统学习(一):Scala概述
  20. Object -c基础知识(5)--release 之后 retainCount为何为1

热门文章

  1. jQuery---jq操作标签文本(html(),text()),jq操作文档标签(插入,删除,修改),克隆,,jq操作属性,jq操作class属性,jq操作表单value,jq操作css,jq操作盒子(重要),jq操作滚动条
  2. React Children 使用
  3. iOS静态库转Framework动态库
  4. 将exe和dll打包为一个exe文件
  5. linux基础命令学习
  6. RabbitMQ基本概念(四)-服务详细配置与日常监控管理
  7. ajax加载验证码这样不断刷新的文件无法刷新问题
  8. Vue.js学习-组件注册与使用
  9. 为什么要将action实例设置为多例
  10. Prometheus学习笔记(5)Grafana可视化展示