UNPKG

mongoose

Version:
54 lines (50 loc) 2.19 kB
declare module 'mongoose' { /** * Reference another Model */ type PopulatedDoc< PopulatedType, RawId extends RefType = (PopulatedType extends { _id?: RefType; } ? NonNullable<PopulatedType['_id']> : Types.ObjectId) | undefined > = PopulatedType | RawId; interface PopulateOptions { /** space delimited path(s) to populate */ path: string; /** fields to select */ select?: any; /** query conditions to match */ match?: any; /** optional model to use for population */ model?: string | Model<any>; /** optional query options like sort, limit, etc */ options?: QueryOptions; /** correct limit on populated array */ perDocumentLimit?: number; /** optional boolean, set to `false` to allow populating paths that aren't in the schema */ strictPopulate?: boolean; /** deep populate */ populate?: string | PopulateOptions | (string | PopulateOptions)[]; /** * If true Mongoose will always set `path` to a document, or `null` if no document was found. * If false Mongoose will always set `path` to an array, which will be empty if no documents are found. * Inferred from schema by default. */ justOne?: boolean; /** transform function to call on every populated doc */ transform?: (doc: any, id: any) => any; /** Overwrite the schema-level local field to populate on if this is a populated virtual. */ localField?: string; /** Overwrite the schema-level foreign field to populate on if this is a populated virtual. */ foreignField?: string; /** Set to `false` to prevent Mongoose from repopulating paths that are already populated */ forceRepopulate?: boolean; /** * Set to `true` to execute any populate queries one at a time, as opposed to in parallel. * We recommend setting this option to `true` if using transactions, especially if also populating multiple paths or paths with multiple models. * MongoDB server does **not** support multiple operations in parallel on a single transaction. */ ordered?: boolean; } interface PopulateOption { populate?: string | string[] | PopulateOptions | PopulateOptions[]; } }