@@ -345,6 +345,9 @@ Collection.prototype.insertOne = function(doc, options, callback) {
345
345
insertDocuments ( this , [ doc ] , options , function ( err , r ) {
346
346
if ( callback == null ) return ;
347
347
if ( err && callback ) return callback ( err ) ;
348
+ // Workaround for pre 2.6 servers
349
+ if ( r == null ) return callback ( null , { result : { ok :1 } } ) ;
350
+ // Add values to top level to ensure crud spec compatibility
348
351
r . insertedCount = r . result . n ;
349
352
r . insertedId = doc . _id ;
350
353
if ( callback ) callback ( null , r ) ;
@@ -370,6 +373,7 @@ Collection.prototype.insertMany = function(docs, options, callback) {
370
373
insertDocuments ( this , docs , options , function ( err , r ) {
371
374
if ( callback == null ) return ;
372
375
if ( err && callback ) return callback ( err ) ;
376
+ if ( r == null ) return callback ( null , { result : { ok :1 } } ) ;
373
377
r . insertedCount = r . result . n ;
374
378
var ids = [ ] ;
375
379
for ( var i = 0 ; i < docs . length ; i ++ ) {
@@ -557,6 +561,7 @@ Collection.prototype.updateOne = function(filter, update, options, callback) {
557
561
updateDocuments ( this , filter , update , options , function ( err , r ) {
558
562
if ( callback == null ) return ;
559
563
if ( err && callback ) return callback ( err ) ;
564
+ if ( r == null ) return callback ( null , { result : { ok :1 } } ) ;
560
565
r . matchedCount = r . result . n ;
561
566
r . modifiedCount = r . result . nModified != null ? r . result . nModified : r . result . n ;
562
567
r . upsertedId = Array . isArray ( r . result . upserted ) && r . result . upserted . length > 0 ? r . result . upserted [ 0 ] : null ;
@@ -587,6 +592,7 @@ Collection.prototype.replaceOne = function(filter, update, options, callback) {
587
592
updateDocuments ( this , filter , update , options , function ( err , r ) {
588
593
if ( callback == null ) return ;
589
594
if ( err && callback ) return callback ( err ) ;
595
+ if ( r == null ) return callback ( null , { result : { ok :1 } } ) ;
590
596
r . matchedCount = r . result . n ;
591
597
r . modifiedCount = r . result . nModified != null ? r . result . nModified : r . result . n ;
592
598
r . upsertedId = Array . isArray ( r . result . upserted ) && r . result . upserted . length > 0 ? r . result . upserted [ 0 ] : null ;
@@ -618,6 +624,7 @@ Collection.prototype.updateMany = function(filter, update, options, callback) {
618
624
updateDocuments ( this , filter , update , options , function ( err , r ) {
619
625
if ( callback == null ) return ;
620
626
if ( err && callback ) return callback ( err ) ;
627
+ if ( r == null ) return callback ( null , { result : { ok :1 } } ) ;
621
628
r . matchedCount = r . result . n ;
622
629
r . modifiedCount = r . result . nModified != null ? r . result . nModified : r . result . n ;
623
630
r . upsertedId = Array . isArray ( r . result . upserted ) && r . result . upserted . length > 0 ? r . result . upserted [ 0 ] : null ;
@@ -698,6 +705,7 @@ Collection.prototype.deleteOne = function(filter, options, callback) {
698
705
removeDocuments ( this , filter , options , function ( err , r ) {
699
706
if ( callback == null ) return ;
700
707
if ( err && callback ) return callback ( err ) ;
708
+ if ( r == null ) return callback ( null , { result : { ok :1 } } ) ;
701
709
r . deletedCount = r . result . n ;
702
710
if ( callback ) callback ( null , r ) ;
703
711
} ) ;
@@ -723,6 +731,7 @@ Collection.prototype.deleteMany = function(filter, options, callback) {
723
731
removeDocuments ( this , filter , options , function ( err , r ) {
724
732
if ( callback == null ) return ;
725
733
if ( err && callback ) return callback ( err ) ;
734
+ if ( r == null ) return callback ( null , { result : { ok :1 } } ) ;
726
735
r . deletedCount = r . result . n ;
727
736
if ( callback ) callback ( null , r ) ;
728
737
} ) ;
0 commit comments