MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wie definiere ich einen benutzerdefinierten Abfragehelfer im Mungo-Modell mit Typoskript?

Ich habe eine neue Version von @types/mongoose das Abfragehelfer unterstützt. Siehe diese Antwort für Möglichkeiten, einen modifizierten @types zu installieren Paket. Mit meiner Version sollten Sie in der Lage sein, Folgendes in models/article.ts zu schreiben :

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);

und dann routes/article.ts wird funktionieren. Wenn dies für Sie funktioniert, werde ich eine Pull-Anforderung an das Originalpaket auf DefinitelyTyped senden.