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

Mongoose 内置 CURD 方 法、扩展 Mongoose Model 的静态方法和 实例方法的更多相关文章
- MongoDB学习day08--Mongoose索引、Mongoose内置方法、扩展Mongoose Model的静态方法和实例方法
一.Mongoose索引 索引是对数据库表中一列或多列的值进行排序的一种结构, 可以让我们查询数据库变得更快. MongoDB 的索引几乎与传统的关系型数据库一模一样, 这其中也包括一些基本的查询优化 ...
- 第四节:配置的读取、StartUp类、内置依赖注入和扩展改造
一. 配置的读取 在Asp.Net Core中,有一个 appsettings.json 文件,用于存储相应的配置信息,读取的时,要通过构造函数注入:IConfiguration Configurat ...
- Python面向对象——内置对象的功能扩展
1.扩展Python内置类 Python的数据类型 列表(list).字典(dict).集合(set).文件(file).字符串(str),这些都是对象 扩展list的功能,详解如图: 我们给列表添加 ...
- JavaScript内置一些方法的实现原理--new关键字,call/apply/bind方法--实现
先学习下new操作符吧 new关键字调用函数的心路历程: 1.创建一个新对象 2.将函数的作用域赋给新对象(this就指向这个对象) 3.执行函数中的代码 4.返回这个对象 根据这个的思路,来实现一个 ...
- JavaScript内置一些方法的实现原理--new关键字,call/apply/bind方法--前戏
new关键字,call/apply/bind方法都和this的绑定有关,在学习之前,首先要理解this. 一起来学习一下this吧 首先.this是一个对象. 对象很好理解,引用类型值,可以实现如th ...
- JavaScript内置一些方法的实现原理--Object.freeze()、instanceof
const定义的常量,一般是不能修改的. 比如: const TIME_OUT = 10000; 但是当值为引用类型值时,还是可以操作对象,扩展或修改对象属性.方法等等. 以下演示代码的操作是不会报错 ...
- MVC路由 路由的三种扩展 替换MVC内置的Handler
Global.asax 是 程序入口文件 路由配置 为什么localhost:8088/Home/Index/1 能返问到我们写的 会去掉前缀跟端口号 变成Home/Index/1 用这个跟路由 ...
- Js基础知识7-JavaScript所有内置对象属性和方法汇总
对象什么的,程序员可是有很多呢... JS三大对象 对象,是任何一个开发者都无法绕开和逃避的话题,她似乎有些深不可测,但如此伟大和巧妙的存在,一定值得你去摸索.发现.征服. 我们都知道,JavaScr ...
- Python之路----内置函数补充与匿名函数
内置函数补充:reversed()保留原列表,返回一个反向的迭代器 l = [1,2,3,4,5] l.reverse() print(l) l = [1,2,3,4,5] l2 = reversed ...
随机推荐
- spring boot整合spring Data JPA和freemarker
1.spring Data JPA简介 是一个替代hibernate的一个作用于数据库的框架. 2.整合 1.导入依赖 <dependency> <groupId>org.sp ...
- linux memcached 的安装
linux memcached安装yum -y install libevent libevent-deve yum list memcached yum -y install memcached m ...
- zynq开发板外设配置演示
有幸得到米尔电子zynq系列开发板Z-turn Board试用体验,下面说说我这款zynq系列的Z-TURN板子外设配置.从Z-turn Board原理图上看,目前可以配置的FPGA管脚大概有100多 ...
- Resource注解无法导入依赖使用javax.annotation的注解类
Resource注解无法导入依赖使用javax.annotation的注解类 使用javax.annotation的注解类 javax.annotation.Resource 注解在eclipse中无 ...
- SpringBoot中执行定时任务
一:在SpringBoot中使用定时任务相当的简单.首先,我们在启动类中加入@EnableScheduling来开启定时任务. @SpringBootApplication @EnableSchedu ...
- ArrayList的subList方法带来的坑
最近在项目中遇到了一个问题,由一个对象序列化的结构,在反序列化时一直提示失败,真的百思不得其解啊.在对问题排查了好久之后,才发现是这个序列化的对象中的list调用了ArrayList的sublist方 ...
- easyui datagrid Column Group 列组、 复杂表头 嵌套表头 组合表头 (转载)
核心: rowspan:2 //占两行 colspan:3 //占三列 所有的colspan下的二级列表头,统一放在一个数组里. 文章一: 转载来源:https://blog.csdn.ne ...
- idea搭建一个简单的springboot项目
1.file->new->project 2.选中Spring Initializr 3.填写项目信息: 4.选中Web -> Spring Web
- ingress controller 注解使用
ingress controller 注解使用 官网github注解地址: https://github.com/kubernetes/ingress-nginx/blob/master/docs/u ...
- Httpd服务入门知识-Httpd服务常见配置案例之基于用户账号实现访问控制
Httpd服务入门知识-Httpd服务常见配置案例之基于用户账号实现访问控制 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.基于用户的访问控制概述 认证质询: WWW-Auth ...