sql >> データベース >  >> NoSQL >> MongoDB

マングースの「静的」メソッドと「インスタンス」メソッド

    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に感謝します)



    1. mongoDBでグループ化し、結果のすべてのフィールドを返す方法

    2. gopkg.in/mgo.v2の同時実行性(Mongo、Go)

    3. MongoDB $ switch

    4. データベース内のコレクション数の制限