在mongoose模式中,可以通过在模式(Schema)中声明静态方法或实例方法来实现全局/通用方法。
下面是一个示例,演示如何在mongoose模式中声明全局/通用的静态方法:
const mongoose = require('mongoose');
const schema = new mongoose.Schema({
name: String,
age: Number
});
// 声明静态方法
schema.statics.findByName = function(name) {
return this.find({ name });
};
const Model = mongoose.model('Model', schema);
// 调用静态方法
Model.findByName('John')
.then(docs => {
console.log(docs);
})
.catch(err => {
console.error(err);
});
在上述示例中,我们通过schema.statics.findByName
声明了一个名为findByName
的静态方法,该方法用于根据名称查询文档。然后,我们使用mongoose.model
方法创建了一个模型(Model),并通过Model.findByName
调用了刚刚声明的静态方法。
下面是一个示例,演示如何在mongoose模式中声明全局/通用的实例方法:
const mongoose = require('mongoose');
const schema = new mongoose.Schema({
name: String,
age: Number
});
// 声明实例方法
schema.methods.getInfo = function() {
return `Name: ${this.name}, Age: ${this.age}`;
};
const Model = mongoose.model('Model', schema);
// 创建模型实例
const instance = new Model({ name: 'John', age: 25 });
// 调用实例方法
console.log(instance.getInfo());
在上述示例中,我们通过schema.methods.getInfo
声明了一个名为getInfo
的实例方法,该方法用于获取模型实例的信息。然后,我们使用new Model
创建了一个模型实例,并通过instance.getInfo()
调用了刚刚声明的实例方法。
总结:
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云