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

typescriptを使用してマングースモデルでカスタムクエリヘルパーを定義するにはどうすればよいですか?

    新しいバージョンの@types/mongoose クエリヘルパーをサポートします。 この回答 をご覧ください 変更された@typesをインストールする方法について パッケージ。私のバージョンでは、models/article.tsに次のように書くことができるはずです。 :

    import { Document, Schema, Model, model, DocumentQuery } from 'mongoose';
    
    interface IArticle extends Document {
       name: string;
    }
    
    interface IArticleModel extends Model<IArticle, typeof articleQueryHelpers> {
       someStaticMethod(): Promise<any>;
    }
    
    const ArticleSchema = new Schema( { name: String } )
    
    let articleQueryHelpers = {
        byName(this: DocumentQuery<any, IArticle>, name: string) {
            return this.find({ name });
        }
    };
    ArticleSchema.query = articleQueryHelpers;
    
    export default model<IArticle, IArticleModel>('Article', ArticleSchema);
    

    次にroutes/article.ts 動作します。これで問題が解決した場合は、DefinitelyTypedの元のパッケージにプルリクエストを送信します。




    1. Python dictを使用してMongoEngineドキュメントを更新しますか?

    2. Express+MongoDBに最適なセッションストレージミドルウェア

    3. Expressアプリからデバッグを削除するにはどうすればよいですか?

    4. PerconaLive2017-Severeninesのまとめ