@@ -70,7 +70,7 @@ ShareDbMongo.prototype.getCollection = function(collectionName, callback) {
70
70
// Gotcha: calls back sync if connected or async if not
71
71
this . getDbs ( function ( err , mongo ) {
72
72
if ( err ) return callback ( err ) ;
73
- var collection = mongo . collection ( collectionName ) ;
73
+ var collection = mongo . db ( ) . collection ( collectionName ) ;
74
74
return callback ( null , collection ) ;
75
75
} ) ;
76
76
} ;
@@ -82,7 +82,7 @@ ShareDbMongo.prototype._getCollectionPoll = function(collectionName, callback) {
82
82
// Gotcha: calls back sync if connected or async if not
83
83
this . getDbs ( function ( err , mongo , mongoPoll ) {
84
84
if ( err ) return callback ( err ) ;
85
- var collection = ( mongoPoll || mongo ) . collection ( collectionName ) ;
85
+ var collection = ( mongoPoll || mongo ) . db ( ) . collection ( collectionName ) ;
86
86
return callback ( null , collection ) ;
87
87
} ) ;
88
88
} ;
@@ -118,6 +118,14 @@ ShareDbMongo.prototype._flushPendingConnect = function() {
118
118
}
119
119
} ;
120
120
121
+ ShareDbMongo . prototype . _mongodbOptions = function ( options ) {
122
+ if ( options instanceof Object ) {
123
+ return Object . assign ( Object . assign ( { } , options . mongoOptions ) , { useNewUrlParser : true } )
124
+ } else {
125
+ return { useNewUrlParser : true } ;
126
+ }
127
+ }
128
+
121
129
ShareDbMongo . prototype . _connect = function ( mongo , options ) {
122
130
// Create the mongo connection client connections if needed
123
131
//
@@ -131,10 +139,10 @@ ShareDbMongo.prototype._connect = function(mongo, options) {
131
139
} else {
132
140
tasks = {
133
141
mongo : function ( parallelCb ) {
134
- mongodb . connect ( mongo , options . mongoOptions , parallelCb ) ;
142
+ mongodb . connect ( mongo , self . _mongodbOptions ( options . mongoOptions ) , parallelCb ) ;
135
143
} ,
136
144
mongoPoll : function ( parallelCb ) {
137
- mongodb . connect ( options . mongoPoll , options . mongoPollOptions , parallelCb ) ;
145
+ mongodb . connect ( options . mongoPoll , self . _mongodbOptions ( options . mongoPollOptions ) , parallelCb ) ;
138
146
}
139
147
} ;
140
148
}
@@ -155,7 +163,7 @@ ShareDbMongo.prototype._connect = function(mongo, options) {
155
163
mongo ( finish ) ;
156
164
return ;
157
165
}
158
- mongodb . connect ( mongo , options , finish ) ;
166
+ mongodb . connect ( mongo , this . _mongodbOptions ( options ) , finish ) ;
159
167
} ;
160
168
161
169
ShareDbMongo . prototype . close = function ( callback ) {
@@ -306,7 +314,7 @@ ShareDbMongo.prototype.getOpCollection = function(collectionName, callback) {
306
314
this . getDbs ( function ( err , mongo ) {
307
315
if ( err ) return callback ( err ) ;
308
316
var name = self . getOplogCollectionName ( collectionName ) ;
309
- var collection = mongo . collection ( name ) ;
317
+ var collection = mongo . db ( ) . collection ( name ) ;
310
318
// Given the potential problems with creating indexes on the fly, it might
311
319
// be preferrable to disable automatic creation
312
320
if ( self . disableIndexCreation ) {
@@ -1274,7 +1282,17 @@ var collectionOperationsMap = {
1274
1282
collection . distinct ( value . field , query , cb ) ;
1275
1283
} ,
1276
1284
'$aggregate' : function ( collection , query , value , cb ) {
1277
- collection . aggregate ( value , cb ) ;
1285
+ collection . aggregate ( value , function ( err , cursor ) {
1286
+ if ( err ) {
1287
+ return cb ( err ) ;
1288
+ }
1289
+ cursor . toArray ( function ( err , res ) {
1290
+ if ( err ) {
1291
+ return cb ( err ) ;
1292
+ }
1293
+ return cb ( null , res ) ;
1294
+ } ) ;
1295
+ } ) ;
1278
1296
} ,
1279
1297
'$mapReduce' : function ( collection , query , value , cb ) {
1280
1298
if ( typeof value !== 'object' ) {
0 commit comments