您能简单地解释一下使用mongoose时的实例方法是什么吗?
如果我说这个代码不清楚,我错了吗 我或多或少了解这应该做什么,但是。。。 我猜我们正在寻找集合中具有相同类型的对象 事情是他们写这段代码的方式听起来对我来说不是很清楚。你能提供一个更好的例子或纠正这个吗 非常感谢 现在,我们所有的动物实例都有一个可用的您能简单地解释一下使用mongoose时的实例方法是什么吗?,mongoose,methods,instance,Mongoose,Methods,Instance,如果我说这个代码不清楚,我错了吗 我或多或少了解这应该做什么,但是。。。 我猜我们正在寻找集合中具有相同类型的对象 事情是他们写这段代码的方式听起来对我来说不是很清楚。你能提供一个更好的例子或纠正这个吗 非常感谢 现在,我们所有的动物实例都有一个可用的findSimilarTypes方法 var Animal = mongoose.model('Animal', animalSchema); var dog = new Animal({ type: 'dog' }); dog.find
findSimilarTypes
方法
var Animal = mongoose.model('Animal', animalSchema);
var dog = new Animal({ type: 'dog' });
dog.findSimilarTypes(function(err, dogs) {
console.log(dogs); // woof
});
Mongoose modelschema声明或多或少类似于类声明,因此大致如下:
class Person {
constructor (name, yearOfBirth, job) {
this.name = name;
this.yearOfBirth = yearOfBirth;
this.job = job;
}
calculateAge() {
var age = new Date().getFullYear - this.yearOfBirth;
console.log(age);
}
}
const john6 = new Person6('John', 1990, 'teacher');
john6.calculateAge() // Returns age
看来医生们的解释方式很不直观。让我们复习一下创建模型的基础知识,好吗? 您可以定义一个模式-
var mongoose=require('mongoose');
var Schema=mongoose.Schema;
//任意随机模式
var animal_SCHEMA=新模式({
名称:String,
类型:字符串
});
您可以定义自己的模型实例可以使用的方法
以文档中的示例为例,创建实例方法的方法是-
animalSchema.methods.findSimilarTypes=function(){
return mongoose.model('Animal').find({type:this.type});//为了简单起见,我省略了回调
};
然后,创建一个模型并可以将其导出。在这里,我只是创建一个模型
var-animal\u MODEL=mongoose.MODEL('Animals',animal\u SCHEMA);
现在,您为模型实例创建了一个模型和一个实例,但将使用它的实例在哪里?让我们创建一个。这就是通常创建模型的实例的方式。没什么新鲜事
var newAnimal=newAnimal_模型({name:“Scobby”,type:“Detective”});//这可以使用findSimilarTypes
您可能很乐意创建这样的新实例并保存它们,通常如下所示-
const savedData=wait newAnimal.save();
有没有想过save()
方法?这是一个实例方法的例子!默认情况下,Mongoose提供了save()
以及一系列其他方法,请参阅
之所以这样称呼它们,是因为它们只附带一个对象的实例
您创建的模型的每个实例都有一些内置的实例方法。您之前定义的是一个实例方法,它是由您定制的。
现在,newAnimal
可以使用此方法
事实上,您为该模型生成的所有新实例都可以访问findsimirtypes
方法
var badamal=新的动物模型({名称:“好斗”,类型:“麻烦制造者”});
var trouble_makers=badamal.findSimilarTypes();
控制台日志(故障制造者);
class Person {
constructor (name, yearOfBirth, job) {
this.name = name;
this.yearOfBirth = yearOfBirth;
this.job = job;
}
calculateAge() {
var age = new Date().getFullYear - this.yearOfBirth;
console.log(age);
}
}
const john6 = new Person6('John', 1990, 'teacher');
john6.calculateAge() // Returns age