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

Mongoose 内置 CURD 方 法、扩展 Mongoose Model 的静态方法和 实例方法的更多相关文章

  1. MongoDB学习day08--Mongoose索引、Mongoose内置方法、扩展Mongoose Model的静态方法和实例方法

    一.Mongoose索引 索引是对数据库表中一列或多列的值进行排序的一种结构, 可以让我们查询数据库变得更快. MongoDB 的索引几乎与传统的关系型数据库一模一样, 这其中也包括一些基本的查询优化 ...

  2. 第四节:配置的读取、StartUp类、内置依赖注入和扩展改造

    一. 配置的读取 在Asp.Net Core中,有一个 appsettings.json 文件,用于存储相应的配置信息,读取的时,要通过构造函数注入:IConfiguration Configurat ...

  3. Python面向对象——内置对象的功能扩展

    1.扩展Python内置类 Python的数据类型 列表(list).字典(dict).集合(set).文件(file).字符串(str),这些都是对象 扩展list的功能,详解如图: 我们给列表添加 ...

  4. JavaScript内置一些方法的实现原理--new关键字,call/apply/bind方法--实现

    先学习下new操作符吧 new关键字调用函数的心路历程: 1.创建一个新对象 2.将函数的作用域赋给新对象(this就指向这个对象) 3.执行函数中的代码 4.返回这个对象 根据这个的思路,来实现一个 ...

  5. JavaScript内置一些方法的实现原理--new关键字,call/apply/bind方法--前戏

    new关键字,call/apply/bind方法都和this的绑定有关,在学习之前,首先要理解this. 一起来学习一下this吧 首先.this是一个对象. 对象很好理解,引用类型值,可以实现如th ...

  6. JavaScript内置一些方法的实现原理--Object.freeze()、instanceof

    const定义的常量,一般是不能修改的. 比如: const TIME_OUT = 10000; 但是当值为引用类型值时,还是可以操作对象,扩展或修改对象属性.方法等等. 以下演示代码的操作是不会报错 ...

  7. MVC路由 路由的三种扩展 替换MVC内置的Handler

    Global.asax 是 程序入口文件 路由配置   为什么localhost:8088/Home/Index/1 能返问到我们写的 会去掉前缀跟端口号  变成Home/Index/1 用这个跟路由 ...

  8. Js基础知识7-JavaScript所有内置对象属性和方法汇总

    对象什么的,程序员可是有很多呢... JS三大对象 对象,是任何一个开发者都无法绕开和逃避的话题,她似乎有些深不可测,但如此伟大和巧妙的存在,一定值得你去摸索.发现.征服. 我们都知道,JavaScr ...

  9. Python之路----内置函数补充与匿名函数

    内置函数补充:reversed()保留原列表,返回一个反向的迭代器 l = [1,2,3,4,5] l.reverse() print(l) l = [1,2,3,4,5] l2 = reversed ...

随机推荐

  1. 不用Pageant告别Pageant Windows10下TortoiseGit和Git配置使用同一SSH密钥

    关于Git使用SSH免密连接参考:https://blog.csdn.net/qq_32786873/article/details/80570788 关于Windows10下TortoiseGit使 ...

  2. 来自GitHub的优秀开源项目系列

    开发必看: 如何设计大型系统? 架构师技术图谱. 互联网Java工程师进阶扫盲 Java学习指南 Java工程师成神之路 有趣开源项目: 中华古诗词数据库 表情包博物馆

  3. 【转载】Asp.Net生成图片验证码工具类

    在Asp.Net应用程序中,很多时候登陆页面以及其他安全重要操作的页面需要输入验证码,本文提供一个生成验证码图片的工具类,该工具类通过随机数生成验证码文本后,再通过C#中的图片处理类位图类,字体类,一 ...

  4. Android-----创建SQLite数据库

    简单介绍一下Android系统内置轻便又功能强大的嵌入式数据库--SQLite. SQLite是D.Richard Hipp用C语言编写的开源嵌入式数据库引擎,它是一款轻型的数据库,是遵守ACID的关 ...

  5. C# 去除Split()中去除内容为空的数据

    C#去除Split()中去除内容为空的数据 var  str="0001,0002,"; var strusers1 = str.Split(','); ///结果["0 ...

  6. Python时间模块。

    python中时间的表示方式 unix时间戳,字符串时间,格式化时间 时间模块有,time,datetime,calendar #time模块 import time #获取本地时间戳,返回浮点数 p ...

  7. dfs 解决(隐式)图搜索问题

    132. 单词搜索 II 中文 English 给出一个由小写字母组成的矩阵和一个字典.找出所有同时在字典和矩阵中出现的单词.一个单词可以从矩阵中的任意位置开始,可以向左/右/上/下四个相邻方向移动. ...

  8. httprunner学习24-sign签名验证

    前言 一般公司对外的接口都会用到sign签名,对不同的客户提供不同的apikey ,这样可以提高接口请求的安全性,避免被人抓包后乱请求. sign签名是一种很常见的方式 关于sign签名的可以参考前面 ...

  9. Beta 冲刺总结

    作业要求 这个作业属于哪个课程 软件工程1916-W(福州大学) 这个作业要求在哪里 项目Beta冲刺总结 团队名称 基于云的胜利冲锋队 项目名称 云评:高校学生成绩综合评估及可视化分析平台 这个作业 ...

  10. cookie,,session,cache,static 浅谈笔记

    cookie:存在于客户端,每次请求伴随httpRequest 到达服务器端,Cookie内保存sessionId,服务器端就是根据Cookie中的SessionId找到用户的专有session , ...