@liqd-js/mongodb-model
Version:
Mongo model class
31 lines (30 loc) • 966 B
TypeScript
import { MongoRootDocument } from '../../types';
import { Document, Filter, Sort } from 'mongodb';
export type ListParams<DBE extends MongoRootDocument> = {
accessFilter?: Filter<DBE>;
computedProperties?: {
fields: Document | null;
pipeline: Document[] | null;
};
filter?: Filter<DBE>;
smartFilter?: {
filter?: Filter<DBE>;
pipeline?: Document[];
};
pipeline?: Document[];
projection?: Document;
skip?: number;
sort?: Sort;
limit?: number;
sample?: number;
cursor?: string;
countLimit?: number;
};
export declare class QueryBuilder<DBE extends MongoRootDocument> {
pipeline(params: ListParams<DBE>): Promise<Document[]>;
count(params: ListParams<DBE>): Promise<Document[]>;
/**
* Removes stages from the end of the pipeline that don't affect the count, adds $count stage
*/
buildCountPipeline(pipeline: Document[], countLimit?: number): Document[];
}