mongodb 6.9.0-dev.20241003.sha.91f30357 → 6.9.0-dev.20241011.sha.8def42de
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/beta.d.ts +40 -2
- package/lib/bulk/common.js +60 -71
- package/lib/bulk/common.js.map +1 -1
- package/lib/bulk/unordered.js +3 -3
- package/lib/bulk/unordered.js.map +1 -1
- package/lib/change_stream.js +3 -2
- package/lib/change_stream.js.map +1 -1
- package/lib/cmap/wire_protocol/responses.js +3 -0
- package/lib/cmap/wire_protocol/responses.js.map +1 -1
- package/lib/cursor/client_bulk_write_cursor.js +1 -5
- package/lib/cursor/client_bulk_write_cursor.js.map +1 -1
- package/lib/error.js +24 -3
- package/lib/error.js.map +1 -1
- package/lib/index.js +4 -3
- package/lib/index.js.map +1 -1
- package/lib/mongo_client.js +3 -0
- package/lib/mongo_client.js.map +1 -1
- package/lib/operations/client_bulk_write/client_bulk_write.js +30 -10
- package/lib/operations/client_bulk_write/client_bulk_write.js.map +1 -1
- package/lib/operations/client_bulk_write/command_builder.js +62 -4
- package/lib/operations/client_bulk_write/command_builder.js.map +1 -1
- package/lib/operations/client_bulk_write/executor.js +43 -7
- package/lib/operations/client_bulk_write/executor.js.map +1 -1
- package/lib/operations/client_bulk_write/results_merger.js +116 -33
- package/lib/operations/client_bulk_write/results_merger.js.map +1 -1
- package/lib/operations/execute_operation.js +7 -0
- package/lib/operations/execute_operation.js.map +1 -1
- package/lib/operations/operation.js +5 -1
- package/lib/operations/operation.js.map +1 -1
- package/mongodb.d.ts +40 -2
- package/package.json +1 -1
- package/src/bulk/common.ts +80 -120
- package/src/bulk/unordered.ts +3 -4
- package/src/change_stream.ts +5 -2
- package/src/cmap/wire_protocol/responses.ts +4 -0
- package/src/cursor/client_bulk_write_cursor.ts +2 -8
- package/src/error.ts +44 -2
- package/src/index.ts +2 -0
- package/src/mongo_client.ts +5 -0
- package/src/operations/client_bulk_write/client_bulk_write.ts +36 -10
- package/src/operations/client_bulk_write/command_builder.ts +84 -5
- package/src/operations/client_bulk_write/common.ts +6 -0
- package/src/operations/client_bulk_write/executor.ts +48 -7
- package/src/operations/client_bulk_write/results_merger.ts +120 -40
- package/src/operations/execute_operation.ts +8 -0
- package/src/operations/operation.ts +6 -1
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ClientBulkWriteResultsMerger = void 0;
|
|
4
|
+
const __1 = require("../..");
|
|
5
|
+
const error_1 = require("../../error");
|
|
4
6
|
/**
|
|
5
7
|
* Merges client bulk write cursor responses together into a single result.
|
|
6
8
|
* @internal
|
|
@@ -12,6 +14,9 @@ class ClientBulkWriteResultsMerger {
|
|
|
12
14
|
*/
|
|
13
15
|
constructor(options) {
|
|
14
16
|
this.options = options;
|
|
17
|
+
this.currentBatchOffset = 0;
|
|
18
|
+
this.writeConcernErrors = [];
|
|
19
|
+
this.writeErrors = new Map();
|
|
15
20
|
this.result = {
|
|
16
21
|
insertedCount: 0,
|
|
17
22
|
upsertedCount: 0,
|
|
@@ -35,50 +40,128 @@ class ClientBulkWriteResultsMerger {
|
|
|
35
40
|
* @param documents - The documents in the cursor.
|
|
36
41
|
* @returns The current result.
|
|
37
42
|
*/
|
|
38
|
-
merge(
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
this.result.matchedCount += response.matchedCount;
|
|
43
|
-
this.result.modifiedCount += response.modifiedCount;
|
|
44
|
-
this.result.deletedCount += response.deletedCount;
|
|
45
|
-
if (this.options.verboseResults) {
|
|
46
|
-
// Iterate all the documents in the cursor and update the result.
|
|
47
|
-
for (const document of documents) {
|
|
43
|
+
async merge(cursor) {
|
|
44
|
+
let writeConcernErrorResult;
|
|
45
|
+
try {
|
|
46
|
+
for await (const document of cursor) {
|
|
48
47
|
// Only add to maps if ok: 1
|
|
49
48
|
if (document.ok === 1) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
// Handle insert results.
|
|
53
|
-
if ('insert' in operation) {
|
|
54
|
-
this.result.insertResults?.set(document.idx + currentBatchOffset, {
|
|
55
|
-
insertedId: operation.document._id
|
|
56
|
-
});
|
|
49
|
+
if (this.options.verboseResults) {
|
|
50
|
+
this.processDocument(cursor, document);
|
|
57
51
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
// If an individual write error is encountered during an ordered bulk write, drivers MUST
|
|
55
|
+
// record the error in writeErrors and immediately throw the exception. Otherwise, drivers
|
|
56
|
+
// MUST continue to iterate the results cursor and execute any further bulkWrite batches.
|
|
57
|
+
if (this.options.ordered) {
|
|
58
|
+
const error = new error_1.MongoClientBulkWriteError({
|
|
59
|
+
message: 'Mongo client ordered bulk write encountered a write error.'
|
|
60
|
+
});
|
|
61
|
+
error.writeErrors.set(document.idx + this.currentBatchOffset, {
|
|
62
|
+
code: document.code,
|
|
63
|
+
message: document.errmsg
|
|
64
|
+
});
|
|
65
|
+
error.partialResult = this.result;
|
|
66
|
+
throw error;
|
|
70
67
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
68
|
+
else {
|
|
69
|
+
this.writeErrors.set(document.idx + this.currentBatchOffset, {
|
|
70
|
+
code: document.code,
|
|
71
|
+
message: document.errmsg
|
|
75
72
|
});
|
|
76
73
|
}
|
|
77
74
|
}
|
|
78
75
|
}
|
|
79
76
|
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
if (error instanceof __1.MongoWriteConcernError) {
|
|
79
|
+
const result = error.result;
|
|
80
|
+
writeConcernErrorResult = {
|
|
81
|
+
insertedCount: result.nInserted,
|
|
82
|
+
upsertedCount: result.nUpserted,
|
|
83
|
+
matchedCount: result.nMatched,
|
|
84
|
+
modifiedCount: result.nModified,
|
|
85
|
+
deletedCount: result.nDeleted,
|
|
86
|
+
writeConcernError: result.writeConcernError
|
|
87
|
+
};
|
|
88
|
+
if (this.options.verboseResults && result.cursor.firstBatch) {
|
|
89
|
+
for (const document of result.cursor.firstBatch) {
|
|
90
|
+
if (document.ok === 1) {
|
|
91
|
+
this.processDocument(cursor, document);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
throw error;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
finally {
|
|
101
|
+
// Update the counts from the cursor response.
|
|
102
|
+
if (cursor.response) {
|
|
103
|
+
const response = cursor.response;
|
|
104
|
+
this.incrementCounts(response);
|
|
105
|
+
}
|
|
106
|
+
// Increment the batch offset.
|
|
107
|
+
this.currentBatchOffset += cursor.operations.length;
|
|
108
|
+
}
|
|
109
|
+
// If we have write concern errors ensure they are added.
|
|
110
|
+
if (writeConcernErrorResult) {
|
|
111
|
+
const writeConcernError = writeConcernErrorResult.writeConcernError;
|
|
112
|
+
this.incrementCounts(writeConcernErrorResult);
|
|
113
|
+
this.writeConcernErrors.push({
|
|
114
|
+
code: writeConcernError.code,
|
|
115
|
+
message: writeConcernError.errmsg
|
|
116
|
+
});
|
|
117
|
+
}
|
|
80
118
|
return this.result;
|
|
81
119
|
}
|
|
120
|
+
/**
|
|
121
|
+
* Process an individual document in the results.
|
|
122
|
+
* @param cursor - The cursor.
|
|
123
|
+
* @param document - The document to process.
|
|
124
|
+
*/
|
|
125
|
+
processDocument(cursor, document) {
|
|
126
|
+
// Get the corresponding operation from the command.
|
|
127
|
+
const operation = cursor.operations[document.idx];
|
|
128
|
+
// Handle insert results.
|
|
129
|
+
if ('insert' in operation) {
|
|
130
|
+
this.result.insertResults?.set(document.idx + this.currentBatchOffset, {
|
|
131
|
+
insertedId: operation.document._id
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
// Handle update results.
|
|
135
|
+
if ('update' in operation) {
|
|
136
|
+
const result = {
|
|
137
|
+
matchedCount: document.n,
|
|
138
|
+
modifiedCount: document.nModified ?? 0,
|
|
139
|
+
// Check if the bulk did actually upsert.
|
|
140
|
+
didUpsert: document.upserted != null
|
|
141
|
+
};
|
|
142
|
+
if (document.upserted) {
|
|
143
|
+
result.upsertedId = document.upserted._id;
|
|
144
|
+
}
|
|
145
|
+
this.result.updateResults?.set(document.idx + this.currentBatchOffset, result);
|
|
146
|
+
}
|
|
147
|
+
// Handle delete results.
|
|
148
|
+
if ('delete' in operation) {
|
|
149
|
+
this.result.deleteResults?.set(document.idx + this.currentBatchOffset, {
|
|
150
|
+
deletedCount: document.n
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Increment the result counts.
|
|
156
|
+
* @param document - The document with the results.
|
|
157
|
+
*/
|
|
158
|
+
incrementCounts(document) {
|
|
159
|
+
this.result.insertedCount += document.insertedCount;
|
|
160
|
+
this.result.upsertedCount += document.upsertedCount;
|
|
161
|
+
this.result.matchedCount += document.matchedCount;
|
|
162
|
+
this.result.modifiedCount += document.modifiedCount;
|
|
163
|
+
this.result.deletedCount += document.deletedCount;
|
|
164
|
+
}
|
|
82
165
|
}
|
|
83
166
|
exports.ClientBulkWriteResultsMerger = ClientBulkWriteResultsMerger;
|
|
84
167
|
//# sourceMappingURL=results_merger.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"results_merger.js","sourceRoot":"","sources":["../../../src/operations/client_bulk_write/results_merger.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"results_merger.js","sourceRoot":"","sources":["../../../src/operations/client_bulk_write/results_merger.ts"],"names":[],"mappings":"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"}
|
|
@@ -168,6 +168,9 @@ async function tryOperation(operation, { topology, session, readPreference }) {
|
|
|
168
168
|
originalError: previousOperationError
|
|
169
169
|
});
|
|
170
170
|
}
|
|
171
|
+
if (operation.hasAspect(operation_1.Aspect.COMMAND_BATCHING) && !operation.canRetryWrite) {
|
|
172
|
+
throw previousOperationError;
|
|
173
|
+
}
|
|
171
174
|
if (hasWriteAspect && !(0, error_1.isRetryableWriteError)(previousOperationError))
|
|
172
175
|
throw previousOperationError;
|
|
173
176
|
if (hasReadAspect && !(0, error_1.isRetryableReadError)(previousOperationError))
|
|
@@ -189,6 +192,10 @@ async function tryOperation(operation, { topology, session, readPreference }) {
|
|
|
189
192
|
}
|
|
190
193
|
}
|
|
191
194
|
try {
|
|
195
|
+
// If tries > 0 and we are command batching we need to reset the batch.
|
|
196
|
+
if (tries > 0 && operation.hasAspect(operation_1.Aspect.COMMAND_BATCHING)) {
|
|
197
|
+
operation.resetBatch();
|
|
198
|
+
}
|
|
192
199
|
return await operation.execute(server, session);
|
|
193
200
|
}
|
|
194
201
|
catch (operationError) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute_operation.js","sourceRoot":"","sources":["../../src/operations/execute_operation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"execute_operation.js","sourceRoot":"","sources":["../../src/operations/execute_operation.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,8 @@ exports.Aspect = {
|
|
|
11
11
|
EXPLAINABLE: Symbol('EXPLAINABLE'),
|
|
12
12
|
SKIP_COLLATION: Symbol('SKIP_COLLATION'),
|
|
13
13
|
CURSOR_CREATING: Symbol('CURSOR_CREATING'),
|
|
14
|
-
MUST_SELECT_SAME_SERVER: Symbol('MUST_SELECT_SAME_SERVER')
|
|
14
|
+
MUST_SELECT_SAME_SERVER: Symbol('MUST_SELECT_SAME_SERVER'),
|
|
15
|
+
COMMAND_BATCHING: Symbol('COMMAND_BATCHING')
|
|
15
16
|
};
|
|
16
17
|
/** @internal */
|
|
17
18
|
const kSession = Symbol('session');
|
|
@@ -47,6 +48,9 @@ class AbstractOperation {
|
|
|
47
48
|
clearSession() {
|
|
48
49
|
this[kSession] = undefined;
|
|
49
50
|
}
|
|
51
|
+
resetBatch() {
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
50
54
|
get canRetryRead() {
|
|
51
55
|
return this.hasAspect(exports.Aspect.RETRYABLE) && this.hasAspect(exports.Aspect.READ_OPERATION);
|
|
52
56
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operation.js","sourceRoot":"","sources":["../../src/operations/operation.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"operation.js","sourceRoot":"","sources":["../../src/operations/operation.ts"],"names":[],"mappings":";;;AAkHA,sCAeC;AAjID,kCAAuF;AACvF,wDAA6E;AAKhE,QAAA,MAAM,GAAG;IACpB,cAAc,EAAE,MAAM,CAAC,gBAAgB,CAAC;IACxC,eAAe,EAAE,MAAM,CAAC,iBAAiB,CAAC;IAC1C,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC;IAClC,cAAc,EAAE,MAAM,CAAC,gBAAgB,CAAC;IACxC,eAAe,EAAE,MAAM,CAAC,iBAAiB,CAAC;IAC1C,uBAAuB,EAAE,MAAM,CAAC,yBAAyB,CAAC;IAC1D,gBAAgB,EAAE,MAAM,CAAC,kBAAkB,CAAC;CACpC,CAAC;AAsBX,gBAAgB;AAChB,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;AAEnC;;;;;;GAMG;AACH,MAAsB,iBAAiB;IAgBrC,YAAY,UAA4B,EAAE;QACxC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,cAAM,CAAC,eAAe,CAAC;YAC1D,CAAC,CAAC,gCAAc,CAAC,OAAO;YACxB,CAAC,CAAC,CAAC,gCAAc,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,gCAAc,CAAC,OAAO,CAAC,CAAC;QAEpE,oEAAoE;QACpE,IAAI,CAAC,WAAW,GAAG,IAAA,yBAAkB,EAAC,OAAO,CAAC,CAAC;QAE/C,IAAI,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAEvE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC;QACvD,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;IACjC,CAAC;IAQD,SAAS,CAAC,MAAc;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAwC,CAAC;QAC3D,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxB,CAAC;IAED,YAAY;QACV,IAAI,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,cAAM,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,cAAM,CAAC,cAAc,CAAC,CAAC;IACnF,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,SAAS,CAAC,cAAM,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,cAAM,CAAC,eAAe,CAAC,CAAC;IACpF,CAAC;CACF;AAjED,8CAiEC;AAED,SAAgB,aAAa,CAC3B,SAAoC,EACpC,OAAwC;IAExC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,YAAY,GAAG,CAAC,EAAE,CAAC;QACzD,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC;IAED,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3B,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,EAAE;QAC1C,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
package/mongodb.d.ts
CHANGED
|
@@ -1487,6 +1487,12 @@ export declare interface ChangeStreamUpdateDocument<TSchema extends Document = D
|
|
|
1487
1487
|
fullDocumentBeforeChange?: TSchema;
|
|
1488
1488
|
}
|
|
1489
1489
|
|
|
1490
|
+
/** @public */
|
|
1491
|
+
export declare interface ClientBulkWriteError {
|
|
1492
|
+
code: number;
|
|
1493
|
+
message: string;
|
|
1494
|
+
}
|
|
1495
|
+
|
|
1490
1496
|
/** @public */
|
|
1491
1497
|
export declare interface ClientBulkWriteOptions extends CommandOperationOptions {
|
|
1492
1498
|
/**
|
|
@@ -5319,6 +5325,36 @@ export declare class MongoClientBulkWriteCursorError extends MongoRuntimeError {
|
|
|
5319
5325
|
get name(): string;
|
|
5320
5326
|
}
|
|
5321
5327
|
|
|
5328
|
+
/**
|
|
5329
|
+
* An error indicating that an error occurred when executing the bulk write.
|
|
5330
|
+
*
|
|
5331
|
+
* @public
|
|
5332
|
+
* @category Error
|
|
5333
|
+
*/
|
|
5334
|
+
export declare class MongoClientBulkWriteError extends MongoServerError {
|
|
5335
|
+
/**
|
|
5336
|
+
* Write concern errors that occurred while executing the bulk write. This list may have
|
|
5337
|
+
* multiple items if more than one server command was required to execute the bulk write.
|
|
5338
|
+
*/
|
|
5339
|
+
writeConcernErrors: Document[];
|
|
5340
|
+
/**
|
|
5341
|
+
* Errors that occurred during the execution of individual write operations. This map will
|
|
5342
|
+
* contain at most one entry if the bulk write was ordered.
|
|
5343
|
+
*/
|
|
5344
|
+
writeErrors: Map<number, ClientBulkWriteError>;
|
|
5345
|
+
/**
|
|
5346
|
+
* The results of any successful operations that were performed before the error was
|
|
5347
|
+
* encountered.
|
|
5348
|
+
*/
|
|
5349
|
+
partialResult?: ClientBulkWriteResult;
|
|
5350
|
+
/**
|
|
5351
|
+
* Initialize the client bulk write error.
|
|
5352
|
+
* @param message - The error message.
|
|
5353
|
+
*/
|
|
5354
|
+
constructor(message: ErrorDescription);
|
|
5355
|
+
get name(): string;
|
|
5356
|
+
}
|
|
5357
|
+
|
|
5322
5358
|
/**
|
|
5323
5359
|
* An error indicating that an error occurred on the client when executing a client bulk write.
|
|
5324
5360
|
*
|
|
@@ -5988,7 +6024,9 @@ export declare class MongoInvalidArgumentError extends MongoAPIError {
|
|
|
5988
6024
|
*
|
|
5989
6025
|
* @public
|
|
5990
6026
|
**/
|
|
5991
|
-
constructor(message: string
|
|
6027
|
+
constructor(message: string, options?: {
|
|
6028
|
+
cause?: Error;
|
|
6029
|
+
});
|
|
5992
6030
|
get name(): string;
|
|
5993
6031
|
}
|
|
5994
6032
|
|
|
@@ -7814,7 +7852,7 @@ export declare class TypedEventEmitter<Events extends EventsDescription> extends
|
|
|
7814
7852
|
/** @public */
|
|
7815
7853
|
export declare class UnorderedBulkOperation extends BulkOperationBase {
|
|
7816
7854
|
/* Excluded from this release type: __constructor */
|
|
7817
|
-
handleWriteError(
|
|
7855
|
+
handleWriteError(writeResult: BulkWriteResult): void;
|
|
7818
7856
|
addToOperationsList(batchType: BatchType, document: Document | UpdateStatement | DeleteStatement): this;
|
|
7819
7857
|
}
|
|
7820
7858
|
|
package/package.json
CHANGED
package/src/bulk/common.ts
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import { promisify } from 'util';
|
|
2
|
-
|
|
3
1
|
import { type BSONSerializeOptions, type Document, EJSON, resolveBSONOptions } from '../bson';
|
|
4
2
|
import type { Collection } from '../collection';
|
|
5
3
|
import {
|
|
@@ -7,6 +5,7 @@ import {
|
|
|
7
5
|
MongoBatchReExecutionError,
|
|
8
6
|
MONGODB_ERROR_CODES,
|
|
9
7
|
MongoInvalidArgumentError,
|
|
8
|
+
MongoRuntimeError,
|
|
10
9
|
MongoServerError,
|
|
11
10
|
MongoWriteConcernError
|
|
12
11
|
} from '../error';
|
|
@@ -22,7 +21,6 @@ import type { Topology } from '../sdam/topology';
|
|
|
22
21
|
import type { ClientSession } from '../sessions';
|
|
23
22
|
import {
|
|
24
23
|
applyRetryableWrites,
|
|
25
|
-
type Callback,
|
|
26
24
|
getTopology,
|
|
27
25
|
hasAtomicOperators,
|
|
28
26
|
maybeAddIdToDocuments,
|
|
@@ -500,86 +498,46 @@ export function mergeBatchResults(
|
|
|
500
498
|
}
|
|
501
499
|
}
|
|
502
500
|
|
|
503
|
-
function executeCommands(
|
|
501
|
+
async function executeCommands(
|
|
504
502
|
bulkOperation: BulkOperationBase,
|
|
505
|
-
options: BulkWriteOptions
|
|
506
|
-
|
|
507
|
-
) {
|
|
503
|
+
options: BulkWriteOptions
|
|
504
|
+
): Promise<BulkWriteResult> {
|
|
508
505
|
if (bulkOperation.s.batches.length === 0) {
|
|
509
|
-
return
|
|
510
|
-
undefined,
|
|
511
|
-
new BulkWriteResult(bulkOperation.s.bulkResult, bulkOperation.isOrdered)
|
|
512
|
-
);
|
|
506
|
+
return new BulkWriteResult(bulkOperation.s.bulkResult, bulkOperation.isOrdered);
|
|
513
507
|
}
|
|
514
508
|
|
|
515
|
-
const batch
|
|
509
|
+
for (const batch of bulkOperation.s.batches) {
|
|
510
|
+
const finalOptions = resolveOptions(bulkOperation, {
|
|
511
|
+
...options,
|
|
512
|
+
ordered: bulkOperation.isOrdered
|
|
513
|
+
});
|
|
516
514
|
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
if (err && 'message' in err && !(err instanceof MongoWriteConcernError)) {
|
|
520
|
-
return callback(
|
|
521
|
-
new MongoBulkWriteError(
|
|
522
|
-
err,
|
|
523
|
-
new BulkWriteResult(bulkOperation.s.bulkResult, bulkOperation.isOrdered)
|
|
524
|
-
)
|
|
525
|
-
);
|
|
515
|
+
if (finalOptions.bypassDocumentValidation !== true) {
|
|
516
|
+
delete finalOptions.bypassDocumentValidation;
|
|
526
517
|
}
|
|
527
518
|
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
bulkOperation.s.bulkResult,
|
|
532
|
-
bulkOperation.isOrdered,
|
|
533
|
-
err,
|
|
534
|
-
callback
|
|
535
|
-
);
|
|
519
|
+
// Is the bypassDocumentValidation options specific
|
|
520
|
+
if (bulkOperation.s.bypassDocumentValidation === true) {
|
|
521
|
+
finalOptions.bypassDocumentValidation = true;
|
|
536
522
|
}
|
|
537
523
|
|
|
538
|
-
//
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
if (bulkOperation.handleWriteError(callback, writeResult)) return;
|
|
542
|
-
|
|
543
|
-
// Execute the next command in line
|
|
544
|
-
executeCommands(bulkOperation, options, callback);
|
|
545
|
-
}
|
|
546
|
-
|
|
547
|
-
const finalOptions = resolveOptions(bulkOperation, {
|
|
548
|
-
...options,
|
|
549
|
-
ordered: bulkOperation.isOrdered
|
|
550
|
-
});
|
|
551
|
-
|
|
552
|
-
if (finalOptions.bypassDocumentValidation !== true) {
|
|
553
|
-
delete finalOptions.bypassDocumentValidation;
|
|
554
|
-
}
|
|
555
|
-
|
|
556
|
-
// Set an operationIf if provided
|
|
557
|
-
if (bulkOperation.operationId) {
|
|
558
|
-
resultHandler.operationId = bulkOperation.operationId;
|
|
559
|
-
}
|
|
560
|
-
|
|
561
|
-
// Is the bypassDocumentValidation options specific
|
|
562
|
-
if (bulkOperation.s.bypassDocumentValidation === true) {
|
|
563
|
-
finalOptions.bypassDocumentValidation = true;
|
|
564
|
-
}
|
|
565
|
-
|
|
566
|
-
// Is the checkKeys option disabled
|
|
567
|
-
if (bulkOperation.s.checkKeys === false) {
|
|
568
|
-
finalOptions.checkKeys = false;
|
|
569
|
-
}
|
|
570
|
-
|
|
571
|
-
if (finalOptions.retryWrites) {
|
|
572
|
-
if (isUpdateBatch(batch)) {
|
|
573
|
-
finalOptions.retryWrites = finalOptions.retryWrites && !batch.operations.some(op => op.multi);
|
|
524
|
+
// Is the checkKeys option disabled
|
|
525
|
+
if (bulkOperation.s.checkKeys === false) {
|
|
526
|
+
finalOptions.checkKeys = false;
|
|
574
527
|
}
|
|
575
528
|
|
|
576
|
-
if (
|
|
577
|
-
|
|
578
|
-
finalOptions.retryWrites
|
|
529
|
+
if (finalOptions.retryWrites) {
|
|
530
|
+
if (isUpdateBatch(batch)) {
|
|
531
|
+
finalOptions.retryWrites =
|
|
532
|
+
finalOptions.retryWrites && !batch.operations.some(op => op.multi);
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
if (isDeleteBatch(batch)) {
|
|
536
|
+
finalOptions.retryWrites =
|
|
537
|
+
finalOptions.retryWrites && !batch.operations.some(op => op.limit === 0);
|
|
538
|
+
}
|
|
579
539
|
}
|
|
580
|
-
}
|
|
581
540
|
|
|
582
|
-
try {
|
|
583
541
|
const operation = isInsertBatch(batch)
|
|
584
542
|
? new InsertOperation(bulkOperation.s.namespace, batch.operations, finalOptions)
|
|
585
543
|
: isUpdateBatch(batch)
|
|
@@ -588,39 +546,50 @@ function executeCommands(
|
|
|
588
546
|
? new DeleteOperation(bulkOperation.s.namespace, batch.operations, finalOptions)
|
|
589
547
|
: null;
|
|
590
548
|
|
|
591
|
-
if (operation
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
549
|
+
if (operation == null) throw new MongoRuntimeError(`Unknown batchType: ${batch.batchType}`);
|
|
550
|
+
|
|
551
|
+
let thrownError = null;
|
|
552
|
+
let result;
|
|
553
|
+
try {
|
|
554
|
+
result = await executeOperation(bulkOperation.s.collection.client, operation);
|
|
555
|
+
} catch (error) {
|
|
556
|
+
thrownError = error;
|
|
557
|
+
}
|
|
558
|
+
|
|
559
|
+
if (thrownError != null) {
|
|
560
|
+
if (thrownError instanceof MongoWriteConcernError) {
|
|
561
|
+
mergeBatchResults(batch, bulkOperation.s.bulkResult, thrownError, result);
|
|
562
|
+
const writeResult = new BulkWriteResult(
|
|
563
|
+
bulkOperation.s.bulkResult,
|
|
564
|
+
bulkOperation.isOrdered
|
|
565
|
+
);
|
|
566
|
+
|
|
567
|
+
throw new MongoBulkWriteError(
|
|
568
|
+
{
|
|
569
|
+
message: thrownError.result.writeConcernError.errmsg,
|
|
570
|
+
code: thrownError.result.writeConcernError.code
|
|
571
|
+
},
|
|
572
|
+
writeResult
|
|
573
|
+
);
|
|
574
|
+
} else {
|
|
575
|
+
// Error is a driver related error not a bulk op error, return early
|
|
576
|
+
throw new MongoBulkWriteError(
|
|
577
|
+
thrownError,
|
|
578
|
+
new BulkWriteResult(bulkOperation.s.bulkResult, bulkOperation.isOrdered)
|
|
579
|
+
);
|
|
580
|
+
}
|
|
596
581
|
}
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
mergeBatchResults(batch, bulkOperation.s.bulkResult, err, undefined);
|
|
602
|
-
callback();
|
|
582
|
+
|
|
583
|
+
mergeBatchResults(batch, bulkOperation.s.bulkResult, thrownError, result);
|
|
584
|
+
const writeResult = new BulkWriteResult(bulkOperation.s.bulkResult, bulkOperation.isOrdered);
|
|
585
|
+
bulkOperation.handleWriteError(writeResult);
|
|
603
586
|
}
|
|
604
|
-
}
|
|
605
587
|
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
bulkResult
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
callback: Callback<BulkWriteResult>
|
|
612
|
-
) {
|
|
613
|
-
mergeBatchResults(batch, bulkResult, undefined, err.result);
|
|
614
|
-
|
|
615
|
-
callback(
|
|
616
|
-
new MongoBulkWriteError(
|
|
617
|
-
{
|
|
618
|
-
message: err.result.writeConcernError.errmsg,
|
|
619
|
-
code: err.result.writeConcernError.code
|
|
620
|
-
},
|
|
621
|
-
new BulkWriteResult(bulkResult, isOrdered)
|
|
622
|
-
)
|
|
623
|
-
);
|
|
588
|
+
bulkOperation.s.batches.length = 0;
|
|
589
|
+
|
|
590
|
+
const writeResult = new BulkWriteResult(bulkOperation.s.bulkResult, bulkOperation.isOrdered);
|
|
591
|
+
bulkOperation.handleWriteError(writeResult);
|
|
592
|
+
return writeResult;
|
|
624
593
|
}
|
|
625
594
|
|
|
626
595
|
/**
|
|
@@ -875,8 +844,6 @@ export interface BulkWriteOptions extends CommandOperationOptions {
|
|
|
875
844
|
let?: Document;
|
|
876
845
|
}
|
|
877
846
|
|
|
878
|
-
const executeCommandsAsync = promisify(executeCommands);
|
|
879
|
-
|
|
880
847
|
/**
|
|
881
848
|
* TODO(NODE-4063)
|
|
882
849
|
* BulkWrites merge complexity is implemented in executeCommands
|
|
@@ -895,7 +862,7 @@ export class BulkWriteShimOperation extends AbstractOperation {
|
|
|
895
862
|
return 'bulkWrite' as const;
|
|
896
863
|
}
|
|
897
864
|
|
|
898
|
-
execute(_server: Server, session: ClientSession | undefined): Promise<any> {
|
|
865
|
+
async execute(_server: Server, session: ClientSession | undefined): Promise<any> {
|
|
899
866
|
if (this.options.session == null) {
|
|
900
867
|
// An implicit session could have been created by 'executeOperation'
|
|
901
868
|
// So if we stick it on finalOptions here, each bulk operation
|
|
@@ -903,7 +870,7 @@ export class BulkWriteShimOperation extends AbstractOperation {
|
|
|
903
870
|
// an explicit session would be
|
|
904
871
|
this.options.session = session;
|
|
905
872
|
}
|
|
906
|
-
return
|
|
873
|
+
return await executeCommands(this.bulkOperation, this.options);
|
|
907
874
|
}
|
|
908
875
|
}
|
|
909
876
|
|
|
@@ -1239,33 +1206,26 @@ export abstract class BulkOperationBase {
|
|
|
1239
1206
|
* Handles the write error before executing commands
|
|
1240
1207
|
* @internal
|
|
1241
1208
|
*/
|
|
1242
|
-
handleWriteError(
|
|
1209
|
+
handleWriteError(writeResult: BulkWriteResult): void {
|
|
1243
1210
|
if (this.s.bulkResult.writeErrors.length > 0) {
|
|
1244
1211
|
const msg = this.s.bulkResult.writeErrors[0].errmsg
|
|
1245
1212
|
? this.s.bulkResult.writeErrors[0].errmsg
|
|
1246
1213
|
: 'write operation failed';
|
|
1247
1214
|
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
writeResult
|
|
1256
|
-
)
|
|
1215
|
+
throw new MongoBulkWriteError(
|
|
1216
|
+
{
|
|
1217
|
+
message: msg,
|
|
1218
|
+
code: this.s.bulkResult.writeErrors[0].code,
|
|
1219
|
+
writeErrors: this.s.bulkResult.writeErrors
|
|
1220
|
+
},
|
|
1221
|
+
writeResult
|
|
1257
1222
|
);
|
|
1258
|
-
|
|
1259
|
-
return true;
|
|
1260
1223
|
}
|
|
1261
1224
|
|
|
1262
1225
|
const writeConcernError = writeResult.getWriteConcernError();
|
|
1263
1226
|
if (writeConcernError) {
|
|
1264
|
-
|
|
1265
|
-
return true;
|
|
1227
|
+
throw new MongoBulkWriteError(writeConcernError, writeResult);
|
|
1266
1228
|
}
|
|
1267
|
-
|
|
1268
|
-
return false;
|
|
1269
1229
|
}
|
|
1270
1230
|
|
|
1271
1231
|
abstract addToOperationsList(
|