• Mongoose 内置 CURD 方 法、扩展 Mongoose Model 的静态方法和 实例方法


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

  • 相关阅读:
    区块链
    区块链
    区块链
    区块链
    区块链 – 介绍
    区块链 教程
    Matplotlib 直方图
    Matplotlib 饼图
    Matplotlib 柱状图
    Matplotlib 多个图形
  • 原文地址:https://www.cnblogs.com/LO-ME/p/10877227.html
Copyright © 2020-2023  润新知