From 4b2c47eee2973965c53e9f5f9a25921e5483354d Mon Sep 17 00:00:00 2001 From: vi-ssc <105008018+vi-ssc@users.noreply.github.com> Date: Tue, 29 Nov 2022 21:57:58 +0530 Subject: [PATCH] Mongo DB null fix (#7) * mongodb null fix * remove commented qpm() configuration --- .../datasources/datasource-mongodb.js | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/src/adapters/datasources/datasource-mongodb.js b/src/adapters/datasources/datasource-mongodb.js index 71b0f62f..6632900f 100644 --- a/src/adapters/datasources/datasource-mongodb.js +++ b/src/adapters/datasources/datasource-mongodb.js @@ -6,16 +6,20 @@ const HIGHWATERMARK = 50 const mongodb = require('mongodb') const { MongoClient } = mongodb -const { Transform, Writable } = require('stream') -const qpm = require('query-params-mongo') -const processQuery = qpm() -// const processQuery = qpm({ -// autoDetect: [{ fieldPattern: /_id$/, dataType: 'objectId' }], -// converters: { objectId: mongodb.ObjectId } -// }) - -const url = process.env.MONGODB_URL || 'mongodb://localhost:27017' -const configRoot = require('../../config').hostConfig +const { DataSourceMemory } = require("./datasource-memory") +const { Transform, Writable } = require("stream") +const qpm = require("query-params-mongo") +const processQuery = qpm({ + autoDetect: [ + { valuePattern: /^null$/i, dataType: 'nullstring' } + ], + converters: { + nullstring: val=>{ return { $type: 10 } } // reference BSON datatypes https://www.mongodb.com/docs/manual/reference/bson-types/ + } +}) + +const url = process.env.MONGODB_URL || "mongodb://localhost:27017" +const configRoot = require("../../config").hostConfig const dsOptions = configRoot.adapters.datasources.DataSourceMongoDb.options || { runOffline: true, numConns: 2 @@ -266,7 +270,7 @@ export class DataSourceMongoDb extends DataSource { processOptions (param) { const { options = {}, query = {} } = param - return { ...options, ...processQuery(query) } + return { ...processQuery(query), ...options } // options must overwite the query not otherwise } /**