statics er metoderne defineret på modellen. methods er defineret på dokumentet (instansen).
Du kan bruge en statisk metode som Animal.findByName :
const fido = await Animal.findByName('fido');
// fido => { name: 'fido', type: 'dog' }
Og du kan bruge en forekomstmetode som fido.findSimilarTypes :
const dogs = await fido.findSimilarTypes();
// dogs => [ {name:'fido',type:'dog} , {name:'sheeba',type:'dog'} ]
Men du ville ikke gøre Animals.findSimilarTypes() fordi Animals er en model, har den ingen "type". findSimilarTypes har brug for en this.type som ikke ville eksistere i dyremodellen, ville kun en dokumentinstans indeholde den egenskab, som defineret i modellen.
På samme måde ville du ikke¹ gøre fido.findByName fordi findByName skulle søge gennem alle dokumenter og fido er bare a dokument.
¹Tja, teknisk set kan det , fordi instans har adgang til samlingen (this.constructor eller this.model('Animal') ), men det ville ikke give mening (i hvert fald i dette tilfælde) at have en instansmetode, der ikke bruger nogen egenskaber fra instansen. (tak til @AaronDufour for at påpege dette)