diff --git a/packages/api/src/shell/queryReader.js b/packages/api/src/shell/queryReader.js index 8132d60e9..1eea7147f 100644 --- a/packages/api/src/shell/queryReader.js +++ b/packages/api/src/shell/queryReader.js @@ -20,7 +20,9 @@ async function queryReader({ const driver = requireEngineDriver(connection); const pool = await connectUtility(driver, connection, queryType == 'json' ? 'read' : 'script'); console.log(`Connected.`); - return queryType == 'json' ? await driver.readJsonQuery(pool, query) : await driver.readQuery(pool, query || sql); + const reader = + queryType == 'json' ? await driver.readJsonQuery(pool, query) : await driver.readQuery(pool, query || sql); + return reader; } module.exports = queryReader; diff --git a/plugins/dbgate-plugin-mongo/src/backend/driver.js b/plugins/dbgate-plugin-mongo/src/backend/driver.js index 68ea31df3..ece65e41a 100644 --- a/plugins/dbgate-plugin-mongo/src/backend/driver.js +++ b/plugins/dbgate-plugin-mongo/src/backend/driver.js @@ -179,7 +179,7 @@ const driver = { exprValue = func(db, ObjectId); // return directly stream without header row - return exprValue; + return exprValue.stream(); // pass.write(structure || { __isDynamicStructure: true }); // exprValue.on('data', (row) => pass.write(row)); @@ -331,7 +331,8 @@ const driver = { const res = db .collection(collection) .find(condition || {}) - .sort(sort || {}); + .sort(sort || {}) + .stream(); return res; },