statics adalah metode yang didefinisikan pada Model. methods didefinisikan pada dokumen (instance).
Anda dapat menggunakan statis metode seperti Animal.findByName :
const fido = await Animal.findByName('fido');
// fido => { name: 'fido', type: 'dog' }
Dan Anda dapat menggunakan contoh metode seperti fido.findSimilarTypes :
const dogs = await fido.findSimilarTypes();
// dogs => [ {name:'fido',type:'dog} , {name:'sheeba',type:'dog'} ]
Tapi Anda tidak akan melakukan Animals.findSimilarTypes() karena Hewan adalah model, ia tidak memiliki "tipe". findSimilarTypes membutuhkan this.type yang tidak akan ada dalam model Hewan, hanya contoh dokumen yang akan berisi properti itu, seperti yang didefinisikan dalam model.
Demikian pula Anda tidak akan¹ melakukan fido.findByName karena findByName perlu menelusuri semua dokumen dan fido hanya a dokumen.
Yah, secara teknis Anda bisa , karena instance memang memiliki akses ke koleksi (this.constructor atau this.model('Animal') ) tetapi tidak masuk akal (setidaknya dalam kasus ini) untuk memiliki metode instance yang tidak menggunakan properti apa pun dari instance. (terima kasih kepada @AaronDufour karena telah menunjukkan hal ini)