Как добавить метод schema в mongoose? [дубликат]

этот вопрос уже есть ответ здесь:

Я пытался узнать, как добавить методы схемы в Мангуст, которые будут использовать атрибуты модели и каким-то образом изменять их. Можно ли заставить работать приведенный ниже код?

var mySchema = new Schema({
  name: {
    type: String
  },
  createdAt: {
    type: Date, 
    default: Date.now
  },
  changedName: function () {
    return this.name + 'TROLOLO';
  }
});

MySchema.findOne({ _id: id }).exec(function (error, myschema) {
   myschema.changedName();
});

1 ответов


Я думаю, что да, вы хотите методы экземпляра? Это то, что вы имели в виду с методами схемы? Если это так, вы можете сделать что-то вроде:

var mySchema = new Schema({
      name: {
      type: String
},
   createdAt: {
   type: Date, 
   default: Date.now
}
});

mySchema.methods.changedName = function() {
    return this.name + 'TROLOLO';
};

Something = mongoose.model('Something', mySchema);

С этим вы можете сделать:

Something.findOne({ _id: id }).exec(function (error, something) {
   something.changedName();
});