diff --git a/common/volatilePackages.js b/common/volatilePackages.js index 78c375f18..40d4a9207 100644 --- a/common/volatilePackages.js +++ b/common/volatilePackages.js @@ -4,6 +4,7 @@ const volatilePackages = [ '@clickhouse/client', 'bson', // this package is already bundled and is used in mongodb 'mongodb', + 'mongodb-old', 'mongodb-client-encryption', 'tedious', 'msnodesqlv8', diff --git a/plugins/dbgate-plugin-mongo/src/backend/drivers.js b/plugins/dbgate-plugin-mongo/src/backend/drivers.js index ea487d76d..97dc1c8e9 100644 --- a/plugins/dbgate-plugin-mongo/src/backend/drivers.js +++ b/plugins/dbgate-plugin-mongo/src/backend/drivers.js @@ -5,9 +5,7 @@ const driverBases = require('../frontend/drivers'); const Analyser = require('./Analyser'); const isPromise = require('is-promise'); const mongodb = require('mongodb'); -const oldmongodb = require('mongodb-old'); const { ObjectId } = require('mongodb'); -// { MongoClient, ObjectId, AbstractCursor, Long } const { EJSON } = require('bson'); const { serializeJsTypesForJsonStringify, deserializeJsTypesFromJsonParse, getLogger } = require('dbgate-tools'); const createBulkInsertStream = require('./createBulkInsertStream'); @@ -22,7 +20,7 @@ let isProApp; const logger = getLogger('mongoDriver'); function serializeMongoData(row, driverBase) { - const { Long } = driverBase.useLegacyDriver ? oldmongodb : mongodb; + const { Long } = driverBase.useLegacyDriver ? require('mongodb-old') : mongodb; return EJSON.serialize( serializeJsTypesForJsonStringify(row, (value) => { if (value instanceof Long) { @@ -124,7 +122,7 @@ const drivers = driverBases.map((driverBase) => ({ options.tlsInsecure = !ssl.rejectUnauthorized; } - const { MongoClient } = driverBase.useLegacyDriver ? oldmongodb : mongodb; + const { MongoClient } = driverBase.useLegacyDriver ? require('mongodb-old') : mongodb; const client = new MongoClient(mongoUrl, options); await client.connect(); @@ -320,7 +318,7 @@ const drivers = driverBases.map((driverBase) => ({ return; } - const { AbstractCursor } = driverBase.useLegacyDriver ? oldmongodb : mongodb; + const { AbstractCursor } = driverBase.useLegacyDriver ? require('mongodb-old') : mongodb; if (exprValue instanceof AbstractCursor) { await readCursor(exprValue, options, driverBase);