@@ -44,11 +44,13 @@ export class ClientBulkWriteResultsMerger {
44
44
45
45
/**
46
46
* Merge the results in the cursor to the existing result.
47
+ * @param currentBatchOffset - The offset index to the original models.
47
48
* @param response - The cursor response.
48
49
* @param documents - The documents in the cursor.
49
50
* @returns The current result.
50
51
*/
51
52
merge (
53
+ currentBatchOffset : number ,
52
54
operations : Document [ ] ,
53
55
response : ClientBulkWriteCursorResponse ,
54
56
documents : Document [ ]
@@ -69,7 +71,9 @@ export class ClientBulkWriteResultsMerger {
69
71
const operation = operations [ document . idx ] ;
70
72
// Handle insert results.
71
73
if ( 'insert' in operation ) {
72
- this . result . insertResults ?. set ( document . idx , { insertedId : operation . document . _id } ) ;
74
+ this . result . insertResults ?. set ( document . idx + currentBatchOffset , {
75
+ insertedId : operation . document . _id
76
+ } ) ;
73
77
}
74
78
// Handle update results.
75
79
if ( 'update' in operation ) {
@@ -80,11 +84,13 @@ export class ClientBulkWriteResultsMerger {
80
84
if ( document . upserted ) {
81
85
result . upsertedId = document . upserted . _id ;
82
86
}
83
- this . result . updateResults ?. set ( document . idx , result ) ;
87
+ this . result . updateResults ?. set ( document . idx + currentBatchOffset , result ) ;
84
88
}
85
89
// Handle delete results.
86
90
if ( 'delete' in operation ) {
87
- this . result . deleteResults ?. set ( document . idx , { deletedCount : document . n } ) ;
91
+ this . result . deleteResults ?. set ( document . idx + currentBatchOffset , {
92
+ deletedCount : document . n
93
+ } ) ;
88
94
}
89
95
}
90
96
}
0 commit comments