statics jsou metody definované na Modelu. methods jsou definovány v dokumentu (instanci).
Můžete použít statický metoda jako Animal.findByName :
const fido = await Animal.findByName('fido');
// fido => { name: 'fido', type: 'dog' }
A můžete použít instanční metodu jako fido.findSimilarTypes :
const dogs = await fido.findSimilarTypes();
// dogs => [ {name:'fido',type:'dog} , {name:'sheeba',type:'dog'} ]
Ale neudělali byste Animals.findSimilarTypes() protože Animals je model, nemá žádný "typ". findSimilarTypes potřebuje this.type která by v modelu Animals neexistovala, pouze instance dokumentu by obsahovala tuto vlastnost, jak je definována v modelu.
Podobně byste neudělali¹ fido.findByName protože findByName bude muset prohledat všechny dokumenty a fido je jen a dokument.
¹No, technicky můžete , protože instance má přístup ke kolekci (this.constructor nebo this.model('Animal') ), ale nedávalo by smysl (alespoň v tomto případě) mít metodu instance, která nepoužívá žádné vlastnosti z instance. (děkujeme @AaronDufour za upozornění)