mongo - using ejson

This commit is contained in:
SPRINX0\prochazka 2024-08-23 16:27:36 +02:00
parent 3b813e93e7
commit eaa943a39d
3 changed files with 15 additions and 16 deletions

View File

@ -31,14 +31,15 @@
"prepublishOnly": "yarn build" "prepublishOnly": "yarn build"
}, },
"devDependencies": { "devDependencies": {
"bson": "^6.8.0",
"dbgate-plugin-tools": "^1.0.7", "dbgate-plugin-tools": "^1.0.7",
"dbgate-query-splitter": "^4.10.1", "dbgate-query-splitter": "^4.10.1",
"lodash": "^4.17.21",
"webpack": "^5.91.0",
"webpack-cli": "^5.1.4",
"dbgate-tools": "^5.0.0-alpha.1", "dbgate-tools": "^5.0.0-alpha.1",
"is-promise": "^4.0.0", "is-promise": "^4.0.0",
"lodash": "^4.17.21",
"mongodb": "^6.3.0", "mongodb": "^6.3.0",
"mongodb-client-encryption": "^6.0.0" "mongodb-client-encryption": "^6.0.0",
"webpack": "^5.91.0",
"webpack-cli": "^5.1.4"
} }
} }

View File

@ -3,9 +3,8 @@ const stream = require('stream');
const isPromise = require('is-promise'); const isPromise = require('is-promise');
const driverBase = require('../frontend/driver'); const driverBase = require('../frontend/driver');
const Analyser = require('./Analyser'); const Analyser = require('./Analyser');
const MongoClient = require('mongodb').MongoClient; const { MongoClient, ObjectId, AbstractCursor } = require('mongodb');
const ObjectId = require('mongodb').ObjectId; const { EJSON } = require('bson');
const AbstractCursor = require('mongodb').AbstractCursor;
const createBulkInsertStream = require('./createBulkInsertStream'); const createBulkInsertStream = require('./createBulkInsertStream');
const { const {
convertToMongoCondition, convertToMongoCondition,
@ -14,9 +13,7 @@ const {
} = require('../frontend/convertToMongoCondition'); } = require('../frontend/convertToMongoCondition');
function transformMongoData(row) { function transformMongoData(row) {
return _.cloneDeepWith(row, (x) => { return EJSON.serialize(row);
if (x && x.constructor == ObjectId) return { $oid: x.toString() };
});
} }
async function readCursor(cursor, options) { async function readCursor(cursor, options) {
@ -27,11 +24,7 @@ async function readCursor(cursor, options) {
} }
function convertObjectId(condition) { function convertObjectId(condition) {
return _.cloneDeepWith(condition, (x) => { return EJSON.deserialize(condition);
if (x && x.$oid) {
return ObjectId.createFromHexString(x.$oid);
}
});
} }
function findArrayResult(resValue) { function findArrayResult(resValue) {

View File

@ -2458,6 +2458,11 @@ bson@^6.7.0:
resolved "https://registry.yarnpkg.com/bson/-/bson-6.7.0.tgz#51973b132cdc424c8372fda3cb43e3e3e2ae2227" resolved "https://registry.yarnpkg.com/bson/-/bson-6.7.0.tgz#51973b132cdc424c8372fda3cb43e3e3e2ae2227"
integrity sha512-w2IquM5mYzYZv6rs3uN2DZTOBe2a0zXLj53TGDqwF4l6Sz/XsISrisXOJihArF9+BZ6Cq/GjVht7Sjfmri7ytQ== integrity sha512-w2IquM5mYzYZv6rs3uN2DZTOBe2a0zXLj53TGDqwF4l6Sz/XsISrisXOJihArF9+BZ6Cq/GjVht7Sjfmri7ytQ==
bson@^6.8.0:
version "6.8.0"
resolved "https://registry.yarnpkg.com/bson/-/bson-6.8.0.tgz#5063c41ba2437c2b8ff851b50d9e36cb7aaa7525"
integrity sha512-iOJg8pr7wq2tg/zSlCCHMi3hMm5JTOxLTagf3zxhcenHsFp+c6uOs6K7W5UE7A4QIJGtqh/ZovFNMP4mOPJynQ==
buffer-crc32@^0.2.5: buffer-crc32@^0.2.5:
version "0.2.13" version "0.2.13"
resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"