Не могли бы вы объяснить простыми словами, что такое методы экземпляра при использовании мангуста? - PullRequest
2 голосов
/ 12 октября 2019

Я ошибаюсь, если я говорю, что этот код не понятен?

Я более или менее понимаю, что это должно делать, но ... Я думаю, что мы смотрим на объекты, которые имеют одинаковый тип вколлекция?

То, как они написали этот код, мне не совсем понятно. Можете ли вы привести лучший пример или исправить его?

Большое спасибо

https://mongoosejs.com/docs/guide.html

 // define a schema
 var animalSchema = new Schema({ name: String, type: String });

 // assign a function to the "methods" object of our animalSchema
 animalSchema.methods.findSimilarTypes = function(cb) {
   return this.model('Animal').find({ type: this.type }, cb);
 };

Теперь все наши экземпляры животных имеют метод findSimilarTypesдоступны для них.

 var Animal = mongoose.model('Animal', animalSchema);
 var dog = new Animal({ type: 'dog' });

 dog.findSimilarTypes(function(err, dogs) {
   console.log(dogs); // woof
 });

1 Ответ

1 голос
/ 13 октября 2019

Объявление Mongoose Modelschema более или менее похоже на объявление Class, поэтому оно более или менее похоже на:

    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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...