sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur definierar man anpassad frågehjälpare i mongoosemodell med typskript?

Jag har utarbetat en ny version av @types/mongoose som stöder frågehjälpare. Se det här svaret för sätt att installera en modifierad @types paket. Med min version bör du kunna skriva följande 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);

och sedan routes/article.ts kommer att funka. Om detta fungerar för dig kommer jag att skicka en pull-begäran till originalpaketet på DefinitelyTyped.




  1. TypeError:ObjectId('') kan inte serialiseras med JSON

  2. Det gick inte att ladda c++ bson-tillägget, med ren JS-version

  3. lägga upp ett fält i ett underdokument i en array efter index i MongoDB

  4. Filtrera med regex MongoDB C#-drivrutin