sql >> Databáze >  >> NoSQL >> MongoDB

Jak definovat vlastního pomocníka dotazu v modelu mongoose pomocí strojopisu?

Vytvořil jsem návrh novou verzi @types/mongoose který podporuje pomocníky pro dotazy. Viz tuto odpověď pro způsoby instalace upraveného @types balík. S mou verzí byste měli být schopni napsat následující v 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);

a poté routes/article.ts bude pracovat. Pokud to pro vás bude fungovat, odešlem požadavek na stažení původního balíčku na webu RozhodněTyped.




  1. Pokud je Redis single Threaded, jak může být tak rychlý?

  2. jarní data Mongo db agregace

  3. (mongoose/promises) Jak zkontrolujete, zda byl dokument vytvořen pomocí findOneAndUpdate s upsert

  4. Jak pokračovat ve vkládání po chybě duplicitního klíče pomocí PyMongo