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)