@@ -6,16 +6,20 @@ const HIGHWATERMARK = 50
66
77const mongodb = require ( 'mongodb' )
88const { MongoClient } = mongodb
9- const { Transform, Writable } = require ( 'stream' )
10- const qpm = require ( 'query-params-mongo' )
11- const processQuery = qpm ( )
12- // const processQuery = qpm({
13- // autoDetect: [{ fieldPattern: /_id$/, dataType: 'objectId' }],
14- // converters: { objectId: mongodb.ObjectId }
15- // })
16-
17- const url = process . env . MONGODB_URL || 'mongodb://localhost:27017'
18- const configRoot = require ( '../../config' ) . hostConfig
9+ const { DataSourceMemory } = require ( "./datasource-memory" )
10+ const { Transform, Writable } = require ( "stream" )
11+ const qpm = require ( "query-params-mongo" )
12+ const processQuery = qpm ( {
13+ autoDetect : [
14+ { valuePattern : / ^ n u l l $ / i, dataType : 'nullstring' }
15+ ] ,
16+ converters : {
17+ nullstring : val => { return { $type : 10 } } // reference BSON datatypes https://www.mongodb.com/docs/manual/reference/bson-types/
18+ }
19+ } )
20+
21+ const url = process . env . MONGODB_URL || "mongodb://localhost:27017"
22+ const configRoot = require ( "../../config" ) . hostConfig
1923const dsOptions = configRoot . adapters . datasources . DataSourceMongoDb . options || {
2024 runOffline : true ,
2125 numConns : 2
@@ -266,7 +270,7 @@ export class DataSourceMongoDb extends DataSource {
266270
267271 processOptions ( param ) {
268272 const { options = { } , query = { } } = param
269- return { ...options , ...processQuery ( query ) }
273+ return { ...processQuery ( query ) , ...options } // options must overwite the query not otherwise
270274 }
271275
272276 /**
0 commit comments