mongodb 6.9.0-dev.20241010.sha.6ecf198f → 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 +39 -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 +39 -1
- package/package.json +1 -1
- 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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command_builder.js","sourceRoot":"","sources":["../../../src/operations/client_bulk_write/command_builder.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"command_builder.js","sourceRoot":"","sources":["../../../src/operations/client_bulk_write/command_builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ClientBulkWriteExecutor = void 0;
|
|
4
4
|
const client_bulk_write_cursor_1 = require("../../cursor/client_bulk_write_cursor");
|
|
5
|
+
const error_1 = require("../../error");
|
|
5
6
|
const write_concern_1 = require("../../write_concern");
|
|
6
7
|
const execute_operation_1 = require("../execute_operation");
|
|
7
8
|
const client_bulk_write_1 = require("./client_bulk_write");
|
|
@@ -19,9 +20,17 @@ class ClientBulkWriteExecutor {
|
|
|
19
20
|
* @param options - The bulk write options.
|
|
20
21
|
*/
|
|
21
22
|
constructor(client, operations, options) {
|
|
23
|
+
if (operations.length === 0) {
|
|
24
|
+
throw new error_1.MongoClientBulkWriteExecutionError('No client bulk write models were provided.');
|
|
25
|
+
}
|
|
22
26
|
this.client = client;
|
|
23
27
|
this.operations = operations;
|
|
24
|
-
this.options = {
|
|
28
|
+
this.options = {
|
|
29
|
+
ordered: true,
|
|
30
|
+
bypassDocumentValidation: false,
|
|
31
|
+
verboseResults: false,
|
|
32
|
+
...options
|
|
33
|
+
};
|
|
25
34
|
// If no write concern was provided, we inherit one from the client.
|
|
26
35
|
if (!this.options.writeConcern) {
|
|
27
36
|
this.options.writeConcern = write_concern_1.WriteConcern.fromOptions(this.client.options);
|
|
@@ -48,14 +57,41 @@ class ClientBulkWriteExecutor {
|
|
|
48
57
|
else {
|
|
49
58
|
const resultsMerger = new results_merger_1.ClientBulkWriteResultsMerger(this.options);
|
|
50
59
|
// For each command will will create and exhaust a cursor for the results.
|
|
51
|
-
let currentBatchOffset = 0;
|
|
52
60
|
while (commandBuilder.hasNextBatch()) {
|
|
53
61
|
const cursor = new client_bulk_write_cursor_1.ClientBulkWriteCursor(this.client, commandBuilder, this.options);
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
62
|
+
try {
|
|
63
|
+
await resultsMerger.merge(cursor);
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
// Write concern errors are recorded in the writeConcernErrors field on MongoClientBulkWriteError.
|
|
67
|
+
// When a write concern error is encountered, it should not terminate execution of the bulk write
|
|
68
|
+
// for either ordered or unordered bulk writes. However, drivers MUST throw an exception at the end
|
|
69
|
+
// of execution if any write concern errors were observed.
|
|
70
|
+
if (error instanceof error_1.MongoServerError && !(error instanceof error_1.MongoClientBulkWriteError)) {
|
|
71
|
+
// Server side errors need to be wrapped inside a MongoClientBulkWriteError, where the root
|
|
72
|
+
// cause is the error property and a partial result is to be included.
|
|
73
|
+
const bulkWriteError = new error_1.MongoClientBulkWriteError({
|
|
74
|
+
message: 'Mongo client bulk write encountered an error during execution'
|
|
75
|
+
});
|
|
76
|
+
bulkWriteError.cause = error;
|
|
77
|
+
bulkWriteError.partialResult = resultsMerger.result;
|
|
78
|
+
throw bulkWriteError;
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
// Client side errors are just thrown.
|
|
82
|
+
throw error;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
// If we have write concern errors or unordered write errors at the end we throw.
|
|
87
|
+
if (resultsMerger.writeConcernErrors.length > 0 || resultsMerger.writeErrors.size > 0) {
|
|
88
|
+
const error = new error_1.MongoClientBulkWriteError({
|
|
89
|
+
message: 'Mongo client bulk write encountered errors during execution.'
|
|
90
|
+
});
|
|
91
|
+
error.writeConcernErrors = resultsMerger.writeConcernErrors;
|
|
92
|
+
error.writeErrors = resultsMerger.writeErrors;
|
|
93
|
+
error.partialResult = resultsMerger.result;
|
|
94
|
+
throw error;
|
|
59
95
|
}
|
|
60
96
|
return resultsMerger.result;
|
|
61
97
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/operations/client_bulk_write/executor.ts"],"names":[],"mappings":";;;AAAA,oFAA8E;
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/operations/client_bulk_write/executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
|
package/package.json
CHANGED
|
@@ -354,4 +354,8 @@ export class ClientBulkWriteCursorResponse extends CursorResponse {
|
|
|
354
354
|
get deletedCount() {
|
|
355
355
|
return this.get('nDeleted', BSONType.int, true);
|
|
356
356
|
}
|
|
357
|
+
|
|
358
|
+
get writeConcernError() {
|
|
359
|
+
return this.get('writeConcernError', BSONType.object, false);
|
|
360
|
+
}
|
|
357
361
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { type Document } from 'bson';
|
|
2
2
|
|
|
3
3
|
import { type ClientBulkWriteCursorResponse } from '../cmap/wire_protocol/responses';
|
|
4
|
-
import { MongoClientBulkWriteCursorError } from '../error';
|
|
5
4
|
import type { MongoClient } from '../mongo_client';
|
|
6
5
|
import { ClientBulkWriteOperation } from '../operations/client_bulk_write/client_bulk_write';
|
|
7
6
|
import { type ClientBulkWriteCommandBuilder } from '../operations/client_bulk_write/command_builder';
|
|
@@ -48,16 +47,11 @@ export class ClientBulkWriteCursor extends AbstractCursor {
|
|
|
48
47
|
* We need a way to get the top level cursor response fields for
|
|
49
48
|
* generating the bulk write result, so we expose this here.
|
|
50
49
|
*/
|
|
51
|
-
get response(): ClientBulkWriteCursorResponse {
|
|
50
|
+
get response(): ClientBulkWriteCursorResponse | null {
|
|
52
51
|
if (this.cursorResponse) return this.cursorResponse;
|
|
53
|
-
|
|
54
|
-
'No client bulk write cursor response returned from the server.'
|
|
55
|
-
);
|
|
52
|
+
return null;
|
|
56
53
|
}
|
|
57
54
|
|
|
58
|
-
/**
|
|
59
|
-
* Get the last set of operations the cursor executed.
|
|
60
|
-
*/
|
|
61
55
|
get operations(): Document[] {
|
|
62
56
|
return this.commandBuilder.lastOperations;
|
|
63
57
|
}
|
package/src/error.ts
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import type { Document } from './bson';
|
|
2
|
+
import {
|
|
3
|
+
type ClientBulkWriteError,
|
|
4
|
+
type ClientBulkWriteResult
|
|
5
|
+
} from './operations/client_bulk_write/common';
|
|
2
6
|
import type { ServerType } from './sdam/common';
|
|
3
7
|
import type { TopologyVersion } from './sdam/server_description';
|
|
4
8
|
import type { TopologyDescription } from './sdam/topology_description';
|
|
@@ -616,6 +620,44 @@ export class MongoGCPError extends MongoOIDCError {
|
|
|
616
620
|
}
|
|
617
621
|
}
|
|
618
622
|
|
|
623
|
+
/**
|
|
624
|
+
* An error indicating that an error occurred when executing the bulk write.
|
|
625
|
+
*
|
|
626
|
+
* @public
|
|
627
|
+
* @category Error
|
|
628
|
+
*/
|
|
629
|
+
export class MongoClientBulkWriteError extends MongoServerError {
|
|
630
|
+
/**
|
|
631
|
+
* Write concern errors that occurred while executing the bulk write. This list may have
|
|
632
|
+
* multiple items if more than one server command was required to execute the bulk write.
|
|
633
|
+
*/
|
|
634
|
+
writeConcernErrors: Document[];
|
|
635
|
+
/**
|
|
636
|
+
* Errors that occurred during the execution of individual write operations. This map will
|
|
637
|
+
* contain at most one entry if the bulk write was ordered.
|
|
638
|
+
*/
|
|
639
|
+
writeErrors: Map<number, ClientBulkWriteError>;
|
|
640
|
+
/**
|
|
641
|
+
* The results of any successful operations that were performed before the error was
|
|
642
|
+
* encountered.
|
|
643
|
+
*/
|
|
644
|
+
partialResult?: ClientBulkWriteResult;
|
|
645
|
+
|
|
646
|
+
/**
|
|
647
|
+
* Initialize the client bulk write error.
|
|
648
|
+
* @param message - The error message.
|
|
649
|
+
*/
|
|
650
|
+
constructor(message: ErrorDescription) {
|
|
651
|
+
super(message);
|
|
652
|
+
this.writeConcernErrors = [];
|
|
653
|
+
this.writeErrors = new Map();
|
|
654
|
+
}
|
|
655
|
+
|
|
656
|
+
override get name(): string {
|
|
657
|
+
return 'MongoClientBulkWriteError';
|
|
658
|
+
}
|
|
659
|
+
}
|
|
660
|
+
|
|
619
661
|
/**
|
|
620
662
|
* An error indicating that an error occurred when processing bulk write results.
|
|
621
663
|
*
|
|
@@ -1047,8 +1089,8 @@ export class MongoInvalidArgumentError extends MongoAPIError {
|
|
|
1047
1089
|
*
|
|
1048
1090
|
* @public
|
|
1049
1091
|
**/
|
|
1050
|
-
constructor(message: string) {
|
|
1051
|
-
super(message);
|
|
1092
|
+
constructor(message: string, options?: { cause?: Error }) {
|
|
1093
|
+
super(message, options);
|
|
1052
1094
|
}
|
|
1053
1095
|
|
|
1054
1096
|
override get name(): string {
|
package/src/index.ts
CHANGED
|
@@ -46,6 +46,7 @@ export {
|
|
|
46
46
|
MongoBatchReExecutionError,
|
|
47
47
|
MongoChangeStreamError,
|
|
48
48
|
MongoClientBulkWriteCursorError,
|
|
49
|
+
MongoClientBulkWriteError,
|
|
49
50
|
MongoClientBulkWriteExecutionError,
|
|
50
51
|
MongoCompatibilityError,
|
|
51
52
|
MongoCursorExhaustedError,
|
|
@@ -477,6 +478,7 @@ export type {
|
|
|
477
478
|
} from './operations/aggregate';
|
|
478
479
|
export type {
|
|
479
480
|
AnyClientBulkWriteModel,
|
|
481
|
+
ClientBulkWriteError,
|
|
480
482
|
ClientBulkWriteOptions,
|
|
481
483
|
ClientBulkWriteResult,
|
|
482
484
|
ClientDeleteManyModel,
|
package/src/mongo_client.ts
CHANGED
|
@@ -493,6 +493,11 @@ export class MongoClient extends TypedEventEmitter<MongoClientEvents> implements
|
|
|
493
493
|
models: AnyClientBulkWriteModel[],
|
|
494
494
|
options?: ClientBulkWriteOptions
|
|
495
495
|
): Promise<ClientBulkWriteResult | { ok: 1 }> {
|
|
496
|
+
if (this.autoEncrypter) {
|
|
497
|
+
throw new MongoInvalidArgumentError(
|
|
498
|
+
'MongoClient bulkWrite does not currently support automatic encryption.'
|
|
499
|
+
);
|
|
500
|
+
}
|
|
496
501
|
return await new ClientBulkWriteExecutor(this, models, options).execute();
|
|
497
502
|
}
|
|
498
503
|
|