mongoose中的静态方法和实例方法 叁歲伎倆 2021-07-26 00:55 536阅读 0赞 # 一、静态方法 # mongoose中内置多种静态方法,如下: * Model.find() * Model.findById() * Model.findByIdAndDelete() * Model.findByIdAndRemove() * Model.findByIdAndUpdate() * Model.findOne() * Model.findOneAndDelete() * Model.findOneAndRemove() * Model.findOneAndUpdate() * Model.updateMany() * Model.updateOne() * Model.deleteMany() * Model.deleteOne() * Model.replaceOne() 此外,还可以自己定义静态方法(常用) 结构目录 ![20210301161558972.png][] db.js ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMzIzMjU2_size_16_color_FFFFFF_t_70][] const mongoose = require('mongoose') mongoose.connect("mongodb://127.0.0.1:27017/testdb", {useNewUrlParser:true},function (err) { if (err) { console.log(err) return } console.log("数据库连接成功!") }) module.exports = mongoose; user.js ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMzIzMjU2_size_16_color_FFFFFF_t_70 1][] var mongoose=require("./db.js") var SchemaUser = mongoose.Schema({ name: String, age: Number, status: { type: Number, default:0 } }) SchemaUser.statics.findByName = function(name, cb) { this.find({"name": name}, (err, docs) => { cb(err, docs) }) } module.exports = mongoose.model('User', SchemaUser, 'users') main.js ![20210301161843604.png][] let ModelUser = require('./model/users') ModelUser.findByName("李疆", function (err, doc) { console.log("找到了找到了,找到名为李疆的记录了:",doc) }) 执行 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMzIzMjU2_size_16_color_FFFFFF_t_70 2][] # 二、实例方法 # 实例方法在工作中很少用 users.js ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMzIzMjU2_size_16_color_FFFFFF_t_70 3][] var mongoose=require("./db.js") var SchemaUser = mongoose.Schema({ name: String, age: Number, status: { type: Number, default:0 } }) SchemaUser.methods.printInfo = function() { console.log("这个是实例方法") } module.exports = mongoose.model('User', SchemaUser, 'users') main.js ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMzIzMjU2_size_16_color_FFFFFF_t_70 4][] let ModelUser = require('./model/users') let u = new ModelUser({ name: '李疆', age: 22, }) u.printInfo() 运行 ![20210301162400669.png][] [20210301161558972.png]: https://img-blog.csdnimg.cn/20210301161558972.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMzIzMjU2_size_16_color_FFFFFF_t_70]: https://img-blog.csdnimg.cn/20210301162509874.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMzIzMjU2,size_16,color_FFFFFF,t_70 [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMzIzMjU2_size_16_color_FFFFFF_t_70 1]: https://img-blog.csdnimg.cn/20210301161724725.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMzIzMjU2,size_16,color_FFFFFF,t_70 [20210301161843604.png]: https://img-blog.csdnimg.cn/20210301161843604.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMzIzMjU2_size_16_color_FFFFFF_t_70 2]: https://img-blog.csdnimg.cn/20210301161955685.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMzIzMjU2,size_16,color_FFFFFF,t_70 [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMzIzMjU2_size_16_color_FFFFFF_t_70 3]: https://img-blog.csdnimg.cn/20210301162234418.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMzIzMjU2,size_16,color_FFFFFF,t_70 [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMzIzMjU2_size_16_color_FFFFFF_t_70 4]: https://img-blog.csdnimg.cn/20210301162308837.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMzIzMjU2,size_16,color_FFFFFF,t_70 [20210301162400669.png]: https://img-blog.csdnimg.cn/20210301162400669.png
还没有评论,来说两句吧...