@@ -10,7 +10,6 @@ const Document = require('./document');
1010const DocumentNotFoundError = require ( './error/notFound' ) ;
1111const EventEmitter = require ( 'events' ) . EventEmitter ;
1212const Kareem = require ( 'kareem' ) ;
13- const { MongoBulkWriteError } = require ( 'mongodb' ) ;
1413const MongooseBulkWriteError = require ( './error/bulkWriteError' ) ;
1514const MongooseError = require ( './error/index' ) ;
1615const ObjectParameterError = require ( './error/objectParameter' ) ;
@@ -3399,7 +3398,13 @@ Model.bulkWrite = async function bulkWrite(ops, options) {
33993398 const ordered = options . ordered == null ? true : options . ordered ;
34003399
34013400 if ( ops . length === 0 ) {
3402- return getDefaultBulkwriteResult ( ) ;
3401+ const BulkWriteResult = this . base . driver . get ( ) . BulkWriteResult ;
3402+ const bulkWriteResult = new BulkWriteResult ( getDefaultBulkwriteResult ( ) , false ) ;
3403+ bulkWriteResult . n = 0 ;
3404+ bulkWriteResult . mongoose = bulkWriteResult . mongoose || { } ;
3405+ bulkWriteResult . mongoose . validationErrors = [ ] ;
3406+ bulkWriteResult . mongoose . results = [ ] ;
3407+ return bulkWriteResult ;
34033408 }
34043409
34053410 const validations = ops . map ( op => castBulkWrite ( this , op , options ) ) ;
@@ -3470,7 +3475,13 @@ Model.bulkWrite = async function bulkWrite(ops, options) {
34703475 'bulkWrite'
34713476 ) ;
34723477 }
3473- return getDefaultBulkwriteResult ( ) ;
3478+ const BulkWriteResult = this . base . driver . get ( ) . BulkWriteResult ;
3479+ const bulkWriteResult = new BulkWriteResult ( getDefaultBulkwriteResult ( ) , false ) ;
3480+ bulkWriteResult . result = getDefaultBulkwriteResult ( ) ;
3481+ bulkWriteResult . mongoose = bulkWriteResult . mongoose || { } ;
3482+ bulkWriteResult . mongoose . validationErrors = validationErrors ;
3483+ bulkWriteResult . mongoose . results = results ;
3484+ return bulkWriteResult ;
34743485 }
34753486
34763487 let error ;
@@ -3575,7 +3586,7 @@ Model.bulkSave = async function bulkSave(documents, options) {
35753586 ( err ) => ( { bulkWriteResult : null , bulkWriteError : err } )
35763587 ) ;
35773588 // If not a MongoBulkWriteError, treat this as all documents failed to save.
3578- if ( bulkWriteError != null && ! ( bulkWriteError instanceof MongoBulkWriteError ) ) {
3589+ if ( bulkWriteError != null && bulkWriteError . name !== ' MongoBulkWriteError' ) {
35793590 throw bulkWriteError ;
35803591 }
35813592
0 commit comments