sql >> Database teknologi >  >> NoSQL >> MongoDB

Hvordan defineres brugerdefineret forespørgselshjælper i mongoose-model med typescript?

Jeg har udarbejdet en ny version af @types/mongoose der understøtter forespørgselshjælpere. Se dette svar for måder at installere en ændret @types på pakke. Med min version burde du være i stand til at skrive følgende i 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);

og derefter routes/article.ts vil arbejde. Hvis dette virker for dig, så sender jeg en pull-anmodning til den originale pakke på DefinitelyTyped.




  1. Mongoose &unik mark

  2. Sådan opretter du MongoDB MultiKey-indeks på attributten for elementer i en array .NET-driver

  3. Sådan opretter du forbindelse til MySQL uden root-adgangskode på terminal

  4. MEAN-Stack gem et array i MongoDB med mongoose