From 911a82df753ff005d95b833bf98312783ecaf923 Mon Sep 17 00:00:00 2001 From: Charlie Kolb Date: Wed, 20 Aug 2025 16:28:24 +0200 Subject: [PATCH] paginate get --- .../DataStore/actions/row/get.operation.ts | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/packages/nodes-base/nodes/DataStore/actions/row/get.operation.ts b/packages/nodes-base/nodes/DataStore/actions/row/get.operation.ts index 315cbc4e719..db748414e7d 100644 --- a/packages/nodes-base/nodes/DataStore/actions/row/get.operation.ts +++ b/packages/nodes-base/nodes/DataStore/actions/row/get.operation.ts @@ -18,7 +18,19 @@ export async function execute( index: number, ): Promise { const dataStoreProxy = await getDataStoreProxy(this, index); - // todo: pagination - const response = await dataStoreProxy.getManyRowsAndCount({}); - return response.data.map((json) => ({ json })); + let take = 1000; + const result: INodeExecutionData[] = []; + do { + const response = await dataStoreProxy.getManyRowsAndCount({ skip: result.length, take }); + const data = response.data.map((json) => ({ json })); + + // Optimize common path of <1000 results + if (response.count === response.data.length) { + return response.data.map((json) => ({ json })); + } + + result.push.apply(result, data); + take = Math.min(response.count - result.length, take); + } while (take > 0); + return result; }