@@ -1096,6 +1096,7 @@ var pluginManager = function pluginManager() {
1096
1096
**/
1097
1097
this . dbConnection = function ( config ) {
1098
1098
var db , maxPoolSize = 10 ;
1099
+ var mngr = this ;
1099
1100
1100
1101
if ( ! cluster . isMaster ) {
1101
1102
//we are in worker
@@ -1189,11 +1190,17 @@ var pluginManager = function pluginManager() {
1189
1190
//silent
1190
1191
}
1191
1192
1193
+ mngr . dispatch ( "/db/pre_connect" , {
1194
+ connection : dbName ,
1195
+ options : dbOptions
1196
+ } ) ;
1197
+
1192
1198
var countlyDb = mongo . db ( dbName , dbOptions ) ;
1193
1199
countlyDb . _cly_debug = {
1194
- db : dbName ,
1200
+ connection : dbName ,
1195
1201
options : dbOptions
1196
1202
} ;
1203
+
1197
1204
logDbRead . d ( "New connection %j" , countlyDb . _cly_debug ) ;
1198
1205
countlyDb . _emitter . setMaxListeners ( 0 ) ;
1199
1206
if ( ! countlyDb . ObjectID ) {
@@ -1226,6 +1233,14 @@ var pluginManager = function pluginManager() {
1226
1233
}
1227
1234
} ;
1228
1235
1236
+ countlyDb . onOpened ( function ( ) {
1237
+ mngr . dispatch ( "/db/connected" , {
1238
+ db : countlyDb ,
1239
+ connection : dbName ,
1240
+ options : dbOptions
1241
+ } ) ;
1242
+ } ) ;
1243
+
1229
1244
countlyDb . admin ( ) . buildInfo ( { } , ( err , result ) => {
1230
1245
if ( ! err && result ) {
1231
1246
countlyDb . build = result ;
@@ -1313,6 +1328,14 @@ var pluginManager = function pluginManager() {
1313
1328
1314
1329
ob . _findAndModify = ob . findAndModify ;
1315
1330
ob . findAndModify = function ( query , sort , doc , options , callback ) {
1331
+ mngr . dispatch ( "/db/readAndUpdate" , {
1332
+ operation : "findAndModify" ,
1333
+ collection : collection ,
1334
+ query : query ,
1335
+ sort : sort ,
1336
+ update : doc ,
1337
+ options : typeof options === "function" ? { } : options
1338
+ } ) ;
1316
1339
var e ;
1317
1340
var args = arguments ;
1318
1341
var at = "" ;
@@ -1348,6 +1371,13 @@ var pluginManager = function pluginManager() {
1348
1371
var overwriteRetryWrite = function ( obj , name ) {
1349
1372
obj [ "_" + name ] = obj [ name ] ;
1350
1373
obj [ name ] = function ( selector , doc , options , callback ) {
1374
+ mngr . dispatch ( "/db/update" , {
1375
+ operation : name ,
1376
+ collection : collection ,
1377
+ query : selector ,
1378
+ update : doc ,
1379
+ options : typeof options === "function" ? { } : options
1380
+ } ) ;
1351
1381
var args = arguments ;
1352
1382
var e ;
1353
1383
var at = "" ;
@@ -1427,6 +1457,12 @@ var pluginManager = function pluginManager() {
1427
1457
var overwriteDefaultWrite = function ( obj , name ) {
1428
1458
obj [ "_" + name ] = obj [ name ] ;
1429
1459
obj [ name ] = function ( selector , options , callback ) {
1460
+ mngr . dispatch ( "/db/write" , {
1461
+ operation : name ,
1462
+ collection : collection ,
1463
+ query : selector ,
1464
+ options : typeof options === "function" ? { } : options
1465
+ } ) ;
1430
1466
var e ;
1431
1467
var at = "" ;
1432
1468
if ( log . getLevel ( "db" ) === "debug" || log . getLevel ( "db" ) === "info" ) {
@@ -1488,6 +1524,12 @@ var pluginManager = function pluginManager() {
1488
1524
var overwriteDefaultRead = function ( obj , name ) {
1489
1525
obj [ "_" + name ] = obj [ name ] ;
1490
1526
obj [ name ] = function ( query , options , callback ) {
1527
+ mngr . dispatch ( "/db/read" , {
1528
+ operation : name ,
1529
+ collection : collection ,
1530
+ query : query ,
1531
+ options : typeof options === "function" ? { } : options
1532
+ } ) ;
1491
1533
var e ;
1492
1534
var at = "" ;
1493
1535
if ( log . getLevel ( "db" ) === "debug" || log . getLevel ( "db" ) === "info" ) {
@@ -1532,10 +1574,16 @@ var pluginManager = function pluginManager() {
1532
1574
options . projection = options . fields ;
1533
1575
delete options . fields ;
1534
1576
}
1535
- else {
1577
+ else if ( Object . keys ( options ) . length ) {
1536
1578
options = { projection : options } ;
1537
1579
}
1538
1580
}
1581
+ mngr . dispatch ( "/db/read" , {
1582
+ operation : "find" ,
1583
+ collection : collection ,
1584
+ query : query ,
1585
+ options : options || { }
1586
+ } ) ;
1539
1587
if ( log . getLevel ( "db" ) === "debug" || log . getLevel ( "db" ) === "info" ) {
1540
1588
e = new Error ( ) ;
1541
1589
at += e . stack . replace ( / \r \n | \r | \n / g, "\n" ) . split ( "\n" ) [ 2 ] ;
0 commit comments