statics
モデルで定義されたメソッドです。 methods
ドキュメント(インスタンス)で定義されています。
静的を使用する場合があります Animal.findByName
のようなメソッド :
const fido = await Animal.findByName('fido');
// fido => { name: 'fido', type: 'dog' }
また、インスタンスのメソッドを使用することもできます fido.findSimilarTypes
のように :
const dogs = await fido.findSimilarTypes();
// dogs => [ {name:'fido',type:'dog} , {name:'sheeba',type:'dog'} ]
ただし、Animals.findSimilarTypes()
は実行しません。 動物はモデルであるため、「タイプ」はありません。 findSimilarTypes
this.type
が必要です これはAnimalsモデルには存在せず、モデルで定義されているように、ドキュメントインスタンスにのみそのプロパティが含まれます。
同様に、fido.findByName
は実行しません。 findByName
すべてのドキュメントとfido
を検索する必要があります ただa 資料。
¹まあ、技術的にはできます 、インスタンスはコレクションにアクセスできるため(this.constructor
またはthis.model('Animal')
)ただし、インスタンスのプロパティを使用しないインスタンスメソッドを使用することは(少なくともこの場合は)意味がありません。 (これを指摘してくれた@AaronDufourに感謝します)