Skip to content

Commit ca1ac8c

Browse files
mat02oskardudycz
authored andcommitted
Extend Mongo shim to implement limit and skip
1 parent 9564a4f commit ca1ac8c

File tree

1 file changed

+24
-4
lines changed

1 file changed

+24
-4
lines changed

src/packages/pongo/src/mongo/mongoCollection.ts

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ import type {
6565
HandleOptions,
6666
PongoCollection,
6767
PongoFilter,
68+
FindOptions as PongoFindOptions,
6869
PongoHandleResult,
6970
OptionalUnlessRequiredId as PongoOptionalUnlessRequiredId,
7071
PongoSession,
@@ -79,6 +80,28 @@ const toCollectionOperationOptions = (
7980
? { session: options.session as unknown as PongoSession }
8081
: undefined;
8182

83+
const toFindOptions = (
84+
options: FindOptions | undefined,
85+
): PongoFindOptions | undefined => {
86+
if (!options?.session && !options?.limit && !options?.skip) {
87+
return undefined;
88+
}
89+
90+
const pongoFindOptions: PongoFindOptions = {};
91+
92+
if (options?.session) {
93+
pongoFindOptions.session = options.session as unknown as PongoSession;
94+
}
95+
if (options?.limit !== undefined) {
96+
pongoFindOptions.limit = options.limit;
97+
}
98+
if (options?.skip !== undefined) {
99+
pongoFindOptions.skip = options.skip;
100+
}
101+
102+
return pongoFindOptions;
103+
};
104+
82105
export class Collection<T extends Document> implements MongoCollection<T> {
83106
private collection: PongoCollection<T>;
84107

@@ -271,10 +294,7 @@ export class Collection<T extends Document> implements MongoCollection<T> {
271294
options?: FindOptions<Document>,
272295
): MongoFindCursor<WithId<T>> | MongoFindCursor<T> {
273296
return new FindCursor(
274-
this.collection.find(
275-
filter as PongoFilter<T>,
276-
toCollectionOperationOptions(options),
277-
),
297+
this.collection.find(filter as PongoFilter<T>, toFindOptions(options)),
278298
) as unknown as MongoFindCursor<T>;
279299
}
280300
options(_options?: OperationOptions): Promise<Document> {

0 commit comments

Comments
 (0)