Методы используются для взаимодействия с текущим экземпляром модели.Пример:
var AnimalSchema = new Schema({
name: String
, type: String
});
// we want to use this on an instance of Animal
AnimalSchema.methods.findSimilarType = function findSimilarType (cb) {
return this.find({ type: this.type }, cb);
};
var Animal = mongoose.model('Animal', AnimalSchema);
var dog = new Animal({ name: 'Rover', type: 'dog' });
// dog is an instance of Animal
dog.findSimilarType(function (err, dogs) {
if (err) return ...
dogs.forEach(..);
})
Статика используется, когда вы не хотите взаимодействовать с экземпляром, но выполняете вещи, связанные с моделью (например, ищите всех животных с именем «Ровер»).
Если вы хотите вставить / обновить экземпляр модели (в БД), то methods
- это путь.Если вам просто нужно сохранить / обновить материал, вы можете использовать функцию save
(уже существует в Mongoose).Пример:
var Animal = mongoose.model('Animal', AnimalSchema);
var dog = new Animal({ name: 'Rover', type: 'dog' });
dog.save(function(err) {
// we've saved the dog into the db here
if (err) throw err;
dog.name = "Spike";
dog.save(function(err) {
// we've updated the dog into the db here
if (err) throw err;
});
});