diff --git a/types/mongoose/index.d.ts b/types/mongoose/index.d.ts index 9a89b8928c..b3a5d7e682 100644 --- a/types/mongoose/index.d.ts +++ b/types/mongoose/index.d.ts @@ -2354,6 +2354,12 @@ declare module "mongoose" { */ cursor(options: any): this; + /** + * Appends a new $facet operator to this aggregate pipeline. + * @param arg $facet operator contents + */ + facet(arg: { [outputField: string]: object[] }): this; + // If cursor option is on, could return an object /** Executes the aggregate pipeline on the currently bound Model. */ exec(callback?: (err: any, result: T) => void): Promise | any; diff --git a/types/mongoose/mongoose-tests.ts b/types/mongoose/mongoose-tests.ts index ca06ec8655..83f6f226b5 100644 --- a/types/mongoose/mongoose-tests.ts +++ b/types/mongoose/mongoose-tests.ts @@ -1237,6 +1237,7 @@ aggregate.append({ $project: { field: 1 }}, { $limit: 2 }); aggregate.append([{ $match: { daw: 'Logic Audio X' }} ]); aggregate.collation({ locale: 'en_US', strength: 1 }); aggregate.count('countName'); +aggregate.facet({ fieldA: [{ a: 1 }], fieldB: [{ b: 1 }] }); aggregate.cursor({ batchSize: 1000 }).exec().each(cb); aggregate.exec().then(cb).catch(cb); aggregate.option({foo: 'bar'}).exec();