fix: useFacet config option to disable $facet aggregation (#2141)

This commit is contained in:
Dan Ribbens
2023-02-20 13:54:12 -05:00
committed by GitHub
parent 007d38be04
commit b4a20741b2
4 changed files with 19 additions and 8 deletions

View File

@@ -77,7 +77,10 @@ export type InitOptions = {
/** Mongo connection URL, starts with `mongo` */
mongoURL: string | false;
/** Extra configuration options that will be passed to Mongo */
mongoOptions?: ConnectOptions;
mongoOptions?: ConnectOptions & {
/** Set false to disable $facet aggregation in non-supporting databases, Defaults to true */
useFacet?: boolean
};
/** Secure string that Payload will use for any encryption workflows */
secret: string;

View File

@@ -90,6 +90,8 @@ export class BasePayload<TGeneratedTypes extends GeneratedTypes> {
mongoURL: string | false;
mongoOptions: InitOptions['mongoOptions'];
mongoMemoryServer: any
local: boolean;
@@ -140,6 +142,7 @@ export class BasePayload<TGeneratedTypes extends GeneratedTypes> {
async init(options: InitOptions): Promise<Payload> {
this.logger = Logger('payload', options.loggerOptions);
this.mongoURL = options.mongoURL;
this.mongoOptions = options.mongoOptions;
if (this.mongoURL) {
mongoose.set('strictQuery', false);

View File

@@ -1,3 +1,4 @@
import { PaginateOptions } from 'mongoose';
import { AccessResult } from '../../config/types';
import { Where } from '../../types';
import { Payload } from '../../payload';
@@ -17,7 +18,7 @@ type Args = {
accessResult: AccessResult
collection: Collection
locale: string
paginationOptions: any
paginationOptions: PaginateOptions
payload: Payload
where: Where
}
@@ -76,7 +77,8 @@ export const queryDrafts = async <T extends TypeWithID>({
const result = await VersionModel.aggregatePaginate(aggregate, {
...paginationOptions,
sort: paginationSort,
});
useFacet: payload.mongoOptions?.useFacet,
} as PaginateOptions);
return {
...result,