mongodb 6.18.0-dev.20250805.sha.ff9a7858 → 6.18.0-dev.20250808.sha.8e06e72a
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 +2 -1
- package/lib/cmap/connection.js.map +1 -1
- package/lib/collection.js +5 -5
- package/lib/collection.js.map +1 -1
- package/lib/cursor/aggregation_cursor.js +2 -1
- package/lib/cursor/aggregation_cursor.js.map +1 -1
- package/lib/cursor/explainable_cursor.js +36 -0
- package/lib/cursor/explainable_cursor.js.map +1 -0
- package/lib/cursor/find_cursor.js +2 -1
- package/lib/cursor/find_cursor.js.map +1 -1
- package/lib/explain.js +1 -33
- package/lib/explain.js.map +1 -1
- package/lib/index.js +6 -6
- package/lib/index.js.map +1 -1
- package/lib/operations/aggregate.js +10 -8
- package/lib/operations/aggregate.js.map +1 -1
- package/lib/operations/client_bulk_write/client_bulk_write.js +9 -42
- package/lib/operations/client_bulk_write/client_bulk_write.js.map +1 -1
- package/lib/operations/command.js +0 -9
- package/lib/operations/command.js.map +1 -1
- package/lib/operations/count.js +8 -4
- package/lib/operations/count.js.map +1 -1
- package/lib/operations/create_collection.js +17 -20
- package/lib/operations/create_collection.js.map +1 -1
- package/lib/operations/delete.js +16 -13
- package/lib/operations/delete.js.map +1 -1
- package/lib/operations/drop.js +13 -6
- package/lib/operations/drop.js.map +1 -1
- package/lib/operations/estimated_document_count.js +8 -4
- package/lib/operations/estimated_document_count.js.map +1 -1
- package/lib/operations/execute_operation.js +2 -1
- package/lib/operations/execute_operation.js.map +1 -1
- package/lib/operations/find.js +13 -24
- package/lib/operations/find.js.map +1 -1
- package/lib/operations/find_and_modify.js +53 -42
- package/lib/operations/find_and_modify.js.map +1 -1
- package/lib/operations/get_more.js +11 -12
- package/lib/operations/get_more.js.map +1 -1
- package/lib/operations/indexes.js +24 -15
- package/lib/operations/indexes.js.map +1 -1
- package/lib/operations/insert.js +0 -13
- package/lib/operations/insert.js.map +1 -1
- package/lib/operations/kill_cursors.js +14 -16
- package/lib/operations/kill_cursors.js.map +1 -1
- package/lib/operations/list_collections.js +8 -7
- package/lib/operations/list_collections.js.map +1 -1
- package/lib/operations/list_databases.js +6 -4
- package/lib/operations/list_databases.js.map +1 -1
- package/lib/operations/operation.js +0 -1
- package/lib/operations/operation.js.map +1 -1
- package/lib/operations/rename.js +11 -9
- package/lib/operations/rename.js.map +1 -1
- package/lib/operations/search_indexes/create.js +12 -9
- package/lib/operations/search_indexes/create.js.map +1 -1
- package/lib/operations/search_indexes/update.js +12 -5
- package/lib/operations/search_indexes/update.js.map +1 -1
- package/lib/operations/update.js +23 -20
- package/lib/operations/update.js.map +1 -1
- package/lib/operations/validate_collection.js +18 -19
- package/lib/operations/validate_collection.js.map +1 -1
- package/lib/sdam/server.js +31 -27
- package/lib/sdam/server.js.map +1 -1
- package/lib/sdam/topology.js +3 -2
- package/lib/sdam/topology.js.map +1 -1
- package/mongodb.d.ts +2 -1
- package/package.json +1 -1
- package/src/cmap/connection.ts +0 -1
- package/src/collection.ts +7 -22
- package/src/cursor/aggregation_cursor.ts +1 -1
- package/src/cursor/explainable_cursor.ts +51 -0
- package/src/cursor/find_cursor.ts +1 -1
- package/src/explain.ts +0 -49
- package/src/index.ts +2 -2
- package/src/operations/aggregate.ts +21 -22
- package/src/operations/client_bulk_write/client_bulk_write.ts +23 -67
- package/src/operations/command.ts +1 -12
- package/src/operations/count.ts +11 -11
- package/src/operations/create_collection.ts +22 -31
- package/src/operations/delete.ts +32 -36
- package/src/operations/drop.ts +18 -17
- package/src/operations/estimated_document_count.ts +10 -11
- package/src/operations/execute_operation.ts +9 -7
- package/src/operations/find.ts +28 -49
- package/src/operations/find_and_modify.ts +80 -56
- package/src/operations/get_more.ts +18 -20
- package/src/operations/indexes.ts +30 -34
- package/src/operations/insert.ts +0 -20
- package/src/operations/kill_cursors.ts +22 -23
- package/src/operations/list_collections.ts +15 -23
- package/src/operations/list_databases.ts +8 -17
- package/src/operations/operation.ts +0 -3
- package/src/operations/rename.ts +13 -16
- package/src/operations/search_indexes/create.ts +16 -16
- package/src/operations/search_indexes/update.ts +16 -11
- package/src/operations/update.ts +55 -54
- package/src/operations/validate_collection.ts +21 -29
- package/src/sdam/server.ts +33 -28
- package/src/sdam/topology.ts +4 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list_collections.js","sourceRoot":"","sources":["../../src/operations/list_collections.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"list_collections.js","sourceRoot":"","sources":["../../src/operations/list_collections.ts"],"names":[],"mappings":";;;AAEA,+DAA0F;AAI1F,oCAA0C;AAC1C,uCAAqF;AACrF,2CAAoD;AAmBpD,gBAAgB;AAChB,MAAa,wBAAyB,SAAQ,oCAA0C;IAgBtF,YAAY,EAAM,EAAE,MAAgB,EAAE,OAAgC;QACpE,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAhBZ,iCAA4B,GAAG,0BAAc,CAAC;QAkBrD,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;QACjC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QACxC,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC;QAElE,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC/C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QAC1C,CAAC;QAED,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,mCAAuB,CAAC,CAAC,CAAC,0BAAc,CAAC;IAC9F,CAAC;IAED,IAAa,WAAW;QACtB,OAAO,iBAA0B,CAAC;IACpC,CAAC;IAEQ,oBAAoB,CAAC,UAAsB;QAClD,MAAM,OAAO,GAAa;YACxB,eAAe,EAAE,CAAC;YAClB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE;YAC3D,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;SAClD,CAAC;QAEF,iEAAiE;QACjE,gDAAgD;QAChD,IAAI,IAAA,sBAAc,EAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1E,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QACzC,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEQ,QAAQ,CACf,QAAgE;QAEhE,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AA5DD,4DA4DC;AAcD,IAAA,yBAAa,EAAC,wBAAwB,EAAE;IACtC,kBAAM,CAAC,cAAc;IACrB,kBAAM,CAAC,SAAS;IAChB,kBAAM,CAAC,eAAe;CACvB,CAAC,CAAC"}
|
|
@@ -1,20 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ListDatabasesOperation = void 0;
|
|
4
|
+
const responses_1 = require("../cmap/wire_protocol/responses");
|
|
4
5
|
const utils_1 = require("../utils");
|
|
5
6
|
const command_1 = require("./command");
|
|
6
7
|
const operation_1 = require("./operation");
|
|
7
8
|
/** @internal */
|
|
8
|
-
class ListDatabasesOperation extends command_1.
|
|
9
|
+
class ListDatabasesOperation extends command_1.ModernizedCommandOperation {
|
|
9
10
|
constructor(db, options) {
|
|
10
11
|
super(db, options);
|
|
12
|
+
this.SERVER_COMMAND_RESPONSE_TYPE = responses_1.MongoDBResponse;
|
|
11
13
|
this.options = options ?? {};
|
|
12
14
|
this.ns = new utils_1.MongoDBNamespace('admin', '$cmd');
|
|
13
15
|
}
|
|
14
16
|
get commandName() {
|
|
15
17
|
return 'listDatabases';
|
|
16
18
|
}
|
|
17
|
-
|
|
19
|
+
buildCommandDocument(connection, _session) {
|
|
18
20
|
const cmd = { listDatabases: 1 };
|
|
19
21
|
if (typeof this.options.nameOnly === 'boolean') {
|
|
20
22
|
cmd.nameOnly = this.options.nameOnly;
|
|
@@ -27,10 +29,10 @@ class ListDatabasesOperation extends command_1.CommandOperation {
|
|
|
27
29
|
}
|
|
28
30
|
// we check for undefined specifically here to allow falsy values
|
|
29
31
|
// eslint-disable-next-line no-restricted-syntax
|
|
30
|
-
if ((0, utils_1.maxWireVersion)(
|
|
32
|
+
if ((0, utils_1.maxWireVersion)(connection) >= 9 && this.options.comment !== undefined) {
|
|
31
33
|
cmd.comment = this.options.comment;
|
|
32
34
|
}
|
|
33
|
-
return
|
|
35
|
+
return cmd;
|
|
34
36
|
}
|
|
35
37
|
}
|
|
36
38
|
exports.ListDatabasesOperation = ListDatabasesOperation;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list_databases.js","sourceRoot":"","sources":["../../src/operations/list_databases.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"list_databases.js","sourceRoot":"","sources":["../../src/operations/list_databases.ts"],"names":[],"mappings":";;;AAEA,+DAAkE;AAGlE,oCAA4D;AAC5D,uCAAqF;AACrF,2CAAoD;AAoBpD,gBAAgB;AAChB,MAAa,sBAAuB,SAAQ,oCAA+C;IAIzF,YAAY,EAAM,EAAE,OAA8B;QAChD,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAJZ,iCAA4B,GAAG,2BAAe,CAAC;QAKtD,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,EAAE,GAAG,IAAI,wBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;IAED,IAAa,WAAW;QACtB,OAAO,eAAwB,CAAC;IAClC,CAAC;IAEQ,oBAAoB,CAAC,UAAsB,EAAE,QAAwB;QAC5E,MAAM,GAAG,GAAa,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;QAE3C,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC/C,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QACvC,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACxB,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACnC,CAAC;QAED,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;YAC1D,GAAG,CAAC,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC;QAC7D,CAAC;QAED,iEAAiE;QACjE,gDAAgD;QAChD,IAAI,IAAA,sBAAc,EAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1E,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QACrC,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AArCD,wDAqCC;AAED,IAAA,yBAAa,EAAC,sBAAsB,EAAE,CAAC,kBAAM,CAAC,cAAc,EAAE,kBAAM,CAAC,SAAS,CAAC,CAAC,CAAC"}
|
|
@@ -31,7 +31,6 @@ class AbstractOperation {
|
|
|
31
31
|
this._session = options.session != null ? options.session : undefined;
|
|
32
32
|
this.options = options;
|
|
33
33
|
this.bypassPinningCheck = !!options.bypassPinningCheck;
|
|
34
|
-
this.trySecondaryWrite = false;
|
|
35
34
|
}
|
|
36
35
|
hasAspect(aspect) {
|
|
37
36
|
const ctor = this.constructor;
|
|
@@ -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":"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"}
|
package/lib/operations/rename.js
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.RenameOperation = void 0;
|
|
4
|
+
const responses_1 = require("../cmap/wire_protocol/responses");
|
|
4
5
|
const collection_1 = require("../collection");
|
|
5
6
|
const utils_1 = require("../utils");
|
|
6
7
|
const command_1 = require("./command");
|
|
7
8
|
const operation_1 = require("./operation");
|
|
8
9
|
/** @internal */
|
|
9
|
-
class RenameOperation extends command_1.
|
|
10
|
+
class RenameOperation extends command_1.ModernizedCommandOperation {
|
|
10
11
|
constructor(collection, newName, options) {
|
|
11
12
|
super(collection, options);
|
|
13
|
+
this.SERVER_COMMAND_RESPONSE_TYPE = responses_1.MongoDBResponse;
|
|
12
14
|
this.collection = collection;
|
|
13
15
|
this.newName = newName;
|
|
14
16
|
this.options = options;
|
|
@@ -17,17 +19,17 @@ class RenameOperation extends command_1.CommandOperation {
|
|
|
17
19
|
get commandName() {
|
|
18
20
|
return 'renameCollection';
|
|
19
21
|
}
|
|
20
|
-
|
|
21
|
-
// Build the command
|
|
22
|
+
buildCommandDocument(_connection, _session) {
|
|
22
23
|
const renameCollection = this.collection.namespace;
|
|
23
|
-
const
|
|
24
|
+
const to = this.collection.s.namespace.withCollection(this.newName).toString();
|
|
24
25
|
const dropTarget = typeof this.options.dropTarget === 'boolean' ? this.options.dropTarget : false;
|
|
25
|
-
|
|
26
|
-
renameCollection
|
|
27
|
-
to
|
|
28
|
-
dropTarget
|
|
26
|
+
return {
|
|
27
|
+
renameCollection,
|
|
28
|
+
to,
|
|
29
|
+
dropTarget
|
|
29
30
|
};
|
|
30
|
-
|
|
31
|
+
}
|
|
32
|
+
handleOk(_response) {
|
|
31
33
|
return new collection_1.Collection(this.collection.s.db, this.newName, this.collection.s.options);
|
|
32
34
|
}
|
|
33
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rename.js","sourceRoot":"","sources":["../../src/operations/rename.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"rename.js","sourceRoot":"","sources":["../../src/operations/rename.ts"],"names":[],"mappings":";;;AAEA,+DAAkE;AAClE,8CAA2C;AAE3C,oCAA4C;AAC5C,uCAAqF;AACrF,2CAAoD;AAUpD,gBAAgB;AAChB,MAAa,eAAgB,SAAQ,oCAAoC;IAMvE,YAAY,UAAsB,EAAE,OAAe,EAAE,OAAsB;QACzE,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QANpB,iCAA4B,GAAG,2BAAe,CAAC;QAOtD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,EAAE,GAAG,IAAI,wBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;IAED,IAAa,WAAW;QACtB,OAAO,kBAA2B,CAAC;IACrC,CAAC;IAEQ,oBAAoB,CAAC,WAAuB,EAAE,QAAwB;QAC7E,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QACnD,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC/E,MAAM,UAAU,GACd,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC;QAEjF,OAAO;YACL,gBAAgB;YAChB,EAAE;YACF,UAAU;SACX,CAAC;IACJ,CAAC;IAEQ,QAAQ,CAAC,SAAiE;QACjF,OAAO,IAAI,uBAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACvF,CAAC;CACF;AAlCD,0CAkCC;AAED,IAAA,yBAAa,EAAC,eAAe,EAAE,CAAC,kBAAM,CAAC,eAAe,CAAC,CAAC,CAAC"}
|
|
@@ -1,29 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CreateSearchIndexesOperation = void 0;
|
|
4
|
+
const responses_1 = require("../../cmap/wire_protocol/responses");
|
|
4
5
|
const operation_1 = require("../operation");
|
|
5
6
|
/** @internal */
|
|
6
|
-
class CreateSearchIndexesOperation extends operation_1.
|
|
7
|
+
class CreateSearchIndexesOperation extends operation_1.ModernizedOperation {
|
|
7
8
|
constructor(collection, descriptions) {
|
|
8
9
|
super();
|
|
10
|
+
this.SERVER_COMMAND_RESPONSE_TYPE = responses_1.MongoDBResponse;
|
|
9
11
|
this.collection = collection;
|
|
10
12
|
this.descriptions = descriptions;
|
|
13
|
+
this.ns = collection.fullNamespace;
|
|
11
14
|
}
|
|
12
15
|
get commandName() {
|
|
13
16
|
return 'createSearchIndexes';
|
|
14
17
|
}
|
|
15
|
-
|
|
18
|
+
buildCommand(_connection, _session) {
|
|
16
19
|
const namespace = this.collection.fullNamespace;
|
|
17
|
-
|
|
20
|
+
return {
|
|
18
21
|
createSearchIndexes: namespace.collection,
|
|
19
22
|
indexes: this.descriptions
|
|
20
23
|
};
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
return
|
|
24
|
+
}
|
|
25
|
+
handleOk(response) {
|
|
26
|
+
return super.handleOk(response).indexesCreated.map((val) => val.name);
|
|
27
|
+
}
|
|
28
|
+
buildOptions(timeoutContext) {
|
|
29
|
+
return { session: this.session, timeoutContext };
|
|
27
30
|
}
|
|
28
31
|
}
|
|
29
32
|
exports.CreateSearchIndexesOperation = CreateSearchIndexesOperation;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/operations/search_indexes/create.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/operations/search_indexes/create.ts"],"names":[],"mappings":";;;AAEA,kEAAqE;AAKrE,4CAAmD;AAgBnD,gBAAgB;AAChB,MAAa,4BAA6B,SAAQ,+BAA6B;IAK7E,YAAY,UAAsB,EAAE,YAAmD;QACrF,KAAK,EAAE,CAAC;QALD,iCAA4B,GAAG,2BAAe,CAAC;QAMtD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,EAAE,GAAG,UAAU,CAAC,aAAa,CAAC;IACrC,CAAC;IAED,IAAa,WAAW;QACtB,OAAO,qBAA8B,CAAC;IACxC,CAAC;IAEQ,YAAY,CAAC,WAAuB,EAAE,QAAwB;QACrE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QAChD,OAAO;YACL,mBAAmB,EAAE,SAAS,CAAC,UAAU;YACzC,OAAO,EAAE,IAAI,CAAC,YAAY;SAC3B,CAAC;IACJ,CAAC;IAEQ,QAAQ,CAAC,QAAgE;QAChF,OAAO,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAqB,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC1F,CAAC;IAEQ,YAAY,CAAC,cAA8B;QAClD,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC;IACnD,CAAC;CACF;AA/BD,oEA+BC"}
|
|
@@ -1,27 +1,34 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.UpdateSearchIndexOperation = void 0;
|
|
4
|
+
const responses_1 = require("../../cmap/wire_protocol/responses");
|
|
4
5
|
const operation_1 = require("../operation");
|
|
5
6
|
/** @internal */
|
|
6
|
-
class UpdateSearchIndexOperation extends operation_1.
|
|
7
|
+
class UpdateSearchIndexOperation extends operation_1.ModernizedOperation {
|
|
7
8
|
constructor(collection, name, definition) {
|
|
8
9
|
super();
|
|
10
|
+
this.SERVER_COMMAND_RESPONSE_TYPE = responses_1.MongoDBResponse;
|
|
9
11
|
this.collection = collection;
|
|
10
12
|
this.name = name;
|
|
11
13
|
this.definition = definition;
|
|
14
|
+
this.ns = collection.fullNamespace;
|
|
12
15
|
}
|
|
13
16
|
get commandName() {
|
|
14
17
|
return 'updateSearchIndex';
|
|
15
18
|
}
|
|
16
|
-
|
|
19
|
+
buildCommand(_connection, _session) {
|
|
17
20
|
const namespace = this.collection.fullNamespace;
|
|
18
|
-
|
|
21
|
+
return {
|
|
19
22
|
updateSearchIndex: namespace.collection,
|
|
20
23
|
name: this.name,
|
|
21
24
|
definition: this.definition
|
|
22
25
|
};
|
|
23
|
-
|
|
24
|
-
|
|
26
|
+
}
|
|
27
|
+
handleOk(_response) {
|
|
28
|
+
// no response.
|
|
29
|
+
}
|
|
30
|
+
buildOptions(timeoutContext) {
|
|
31
|
+
return { session: this.session, timeoutContext };
|
|
25
32
|
}
|
|
26
33
|
}
|
|
27
34
|
exports.UpdateSearchIndexOperation = UpdateSearchIndexOperation;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/operations/search_indexes/update.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/operations/search_indexes/update.ts"],"names":[],"mappings":";;;AAEA,kEAAqE;AAKrE,4CAAmD;AAEnD,gBAAgB;AAChB,MAAa,0BAA2B,SAAQ,+BAAyB;IAMvE,YAAY,UAAsB,EAAE,IAAY,EAAE,UAAoB;QACpE,KAAK,EAAE,CAAC;QAND,iCAA4B,GAAG,2BAAe,CAAC;QAOtD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,EAAE,GAAG,UAAU,CAAC,aAAa,CAAC;IACrC,CAAC;IAED,IAAa,WAAW;QACtB,OAAO,mBAA4B,CAAC;IACtC,CAAC;IAEQ,YAAY,CAAC,WAAuB,EAAE,QAAwB;QACrE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QAChD,OAAO;YACL,iBAAiB,EAAE,SAAS,CAAC,UAAU;YACvC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC;IACJ,CAAC;IAEQ,QAAQ,CAAC,SAA0B;QAC1C,eAAe;IACjB,CAAC;IAEQ,YAAY,CAAC,cAA8B;QAClD,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC;IACnD,CAAC;CACF;AAlCD,gEAkCC"}
|
package/lib/operations/update.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ReplaceOneOperation = exports.UpdateManyOperation = exports.UpdateOneOperation = exports.UpdateOperation = void 0;
|
|
4
4
|
exports.makeUpdateStatement = makeUpdateStatement;
|
|
5
|
+
const responses_1 = require("../cmap/wire_protocol/responses");
|
|
5
6
|
const error_1 = require("../error");
|
|
6
7
|
const sort_1 = require("../sort");
|
|
7
8
|
const utils_1 = require("../utils");
|
|
@@ -11,9 +12,10 @@ const operation_1 = require("./operation");
|
|
|
11
12
|
* @internal
|
|
12
13
|
* UpdateOperation is used in bulk write, while UpdateOneOperation and UpdateManyOperation are only used in the collections API
|
|
13
14
|
*/
|
|
14
|
-
class UpdateOperation extends command_1.
|
|
15
|
+
class UpdateOperation extends command_1.ModernizedCommandOperation {
|
|
15
16
|
constructor(ns, statements, options) {
|
|
16
17
|
super(undefined, options);
|
|
18
|
+
this.SERVER_COMMAND_RESPONSE_TYPE = responses_1.MongoDBResponse;
|
|
17
19
|
this.options = options;
|
|
18
20
|
this.ns = ns;
|
|
19
21
|
this.statements = statements;
|
|
@@ -27,13 +29,12 @@ class UpdateOperation extends command_1.CommandOperation {
|
|
|
27
29
|
}
|
|
28
30
|
return this.statements.every(op => op.multi == null || op.multi === false);
|
|
29
31
|
}
|
|
30
|
-
|
|
31
|
-
const options = this.options
|
|
32
|
-
const ordered = typeof options.ordered === 'boolean' ? options.ordered : true;
|
|
32
|
+
buildCommandDocument(_connection, _session) {
|
|
33
|
+
const options = this.options;
|
|
33
34
|
const command = {
|
|
34
35
|
update: this.ns.collection,
|
|
35
36
|
updates: this.statements,
|
|
36
|
-
ordered
|
|
37
|
+
ordered: options.ordered ?? true
|
|
37
38
|
};
|
|
38
39
|
if (typeof options.bypassDocumentValidation === 'boolean') {
|
|
39
40
|
command.bypassDocumentValidation = options.bypassDocumentValidation;
|
|
@@ -46,28 +47,28 @@ class UpdateOperation extends command_1.CommandOperation {
|
|
|
46
47
|
if (options.comment !== undefined) {
|
|
47
48
|
command.comment = options.comment;
|
|
48
49
|
}
|
|
49
|
-
const unacknowledgedWrite = this.writeConcern
|
|
50
|
+
const unacknowledgedWrite = this.writeConcern?.w === 0;
|
|
50
51
|
if (unacknowledgedWrite) {
|
|
51
52
|
if (this.statements.find((o) => o.hint)) {
|
|
52
53
|
// TODO(NODE-3541): fix error for hint with unacknowledged writes
|
|
53
54
|
throw new error_1.MongoCompatibilityError(`hint is not supported with unacknowledged writes`);
|
|
54
55
|
}
|
|
55
56
|
}
|
|
56
|
-
|
|
57
|
-
return res;
|
|
57
|
+
return command;
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
60
|
exports.UpdateOperation = UpdateOperation;
|
|
61
61
|
/** @internal */
|
|
62
62
|
class UpdateOneOperation extends UpdateOperation {
|
|
63
|
-
constructor(
|
|
64
|
-
super(
|
|
63
|
+
constructor(ns, filter, update, options) {
|
|
64
|
+
super(ns, [makeUpdateStatement(filter, update, { ...options, multi: false })], options);
|
|
65
65
|
if (!(0, utils_1.hasAtomicOperators)(update, options)) {
|
|
66
66
|
throw new error_1.MongoInvalidArgumentError('Update document requires atomic operators');
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
|
-
|
|
70
|
-
const res =
|
|
69
|
+
handleOk(response) {
|
|
70
|
+
const res = super.handleOk(response);
|
|
71
|
+
// @ts-expect-error Explain typing is broken
|
|
71
72
|
if (this.explain != null)
|
|
72
73
|
return res;
|
|
73
74
|
if (res.code)
|
|
@@ -86,14 +87,15 @@ class UpdateOneOperation extends UpdateOperation {
|
|
|
86
87
|
exports.UpdateOneOperation = UpdateOneOperation;
|
|
87
88
|
/** @internal */
|
|
88
89
|
class UpdateManyOperation extends UpdateOperation {
|
|
89
|
-
constructor(
|
|
90
|
-
super(
|
|
90
|
+
constructor(ns, filter, update, options) {
|
|
91
|
+
super(ns, [makeUpdateStatement(filter, update, { ...options, multi: true })], options);
|
|
91
92
|
if (!(0, utils_1.hasAtomicOperators)(update, options)) {
|
|
92
93
|
throw new error_1.MongoInvalidArgumentError('Update document requires atomic operators');
|
|
93
94
|
}
|
|
94
95
|
}
|
|
95
|
-
|
|
96
|
-
const res =
|
|
96
|
+
handleOk(response) {
|
|
97
|
+
const res = super.handleOk(response);
|
|
98
|
+
// @ts-expect-error Explain typing is broken
|
|
97
99
|
if (this.explain != null)
|
|
98
100
|
return res;
|
|
99
101
|
if (res.code)
|
|
@@ -112,14 +114,15 @@ class UpdateManyOperation extends UpdateOperation {
|
|
|
112
114
|
exports.UpdateManyOperation = UpdateManyOperation;
|
|
113
115
|
/** @internal */
|
|
114
116
|
class ReplaceOneOperation extends UpdateOperation {
|
|
115
|
-
constructor(
|
|
116
|
-
super(
|
|
117
|
+
constructor(ns, filter, replacement, options) {
|
|
118
|
+
super(ns, [makeUpdateStatement(filter, replacement, { ...options, multi: false })], options);
|
|
117
119
|
if ((0, utils_1.hasAtomicOperators)(replacement)) {
|
|
118
120
|
throw new error_1.MongoInvalidArgumentError('Replacement document must not contain atomic operators');
|
|
119
121
|
}
|
|
120
122
|
}
|
|
121
|
-
|
|
122
|
-
const res =
|
|
123
|
+
handleOk(response) {
|
|
124
|
+
const res = super.handleOk(response);
|
|
125
|
+
// @ts-expect-error Explain typing is broken
|
|
123
126
|
if (this.explain != null)
|
|
124
127
|
return res;
|
|
125
128
|
if (res.code)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/operations/update.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/operations/update.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,37 +1,36 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ValidateCollectionOperation = void 0;
|
|
4
|
+
const responses_1 = require("../cmap/wire_protocol/responses");
|
|
4
5
|
const error_1 = require("../error");
|
|
5
6
|
const command_1 = require("./command");
|
|
6
7
|
/** @internal */
|
|
7
|
-
class ValidateCollectionOperation extends command_1.
|
|
8
|
+
class ValidateCollectionOperation extends command_1.ModernizedCommandOperation {
|
|
8
9
|
constructor(admin, collectionName, options) {
|
|
9
|
-
// Decorate command with extra options
|
|
10
|
-
const command = { validate: collectionName };
|
|
11
|
-
const keys = Object.keys(options);
|
|
12
|
-
for (let i = 0; i < keys.length; i++) {
|
|
13
|
-
if (Object.prototype.hasOwnProperty.call(options, keys[i]) && keys[i] !== 'session') {
|
|
14
|
-
command[keys[i]] = options[keys[i]];
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
10
|
super(admin.s.db, options);
|
|
11
|
+
this.SERVER_COMMAND_RESPONSE_TYPE = responses_1.MongoDBResponse;
|
|
18
12
|
this.options = options;
|
|
19
|
-
this.command = command;
|
|
20
13
|
this.collectionName = collectionName;
|
|
21
14
|
}
|
|
22
15
|
get commandName() {
|
|
23
16
|
return 'validate';
|
|
24
17
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
18
|
+
buildCommandDocument(_connection, _session) {
|
|
19
|
+
// Decorate command with extra options
|
|
20
|
+
return {
|
|
21
|
+
validate: this.collectionName,
|
|
22
|
+
...Object.fromEntries(Object.entries(this.options).filter(entry => entry[0] !== 'session'))
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
handleOk(response) {
|
|
26
|
+
const result = super.handleOk(response);
|
|
27
|
+
if (result.result != null && typeof result.result !== 'string')
|
|
29
28
|
throw new error_1.MongoUnexpectedServerResponseError('Error with validation data');
|
|
30
|
-
if (
|
|
31
|
-
throw new error_1.MongoUnexpectedServerResponseError(`Invalid collection ${collectionName}`);
|
|
32
|
-
if (
|
|
33
|
-
throw new error_1.MongoUnexpectedServerResponseError(`Invalid collection ${collectionName}`);
|
|
34
|
-
return
|
|
29
|
+
if (result.result != null && result.result.match(/exception|corrupt/) != null)
|
|
30
|
+
throw new error_1.MongoUnexpectedServerResponseError(`Invalid collection ${this.collectionName}`);
|
|
31
|
+
if (result.valid != null && !result.valid)
|
|
32
|
+
throw new error_1.MongoUnexpectedServerResponseError(`Invalid collection ${this.collectionName}`);
|
|
33
|
+
return response;
|
|
35
34
|
}
|
|
36
35
|
}
|
|
37
36
|
exports.ValidateCollectionOperation = ValidateCollectionOperation;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate_collection.js","sourceRoot":"","sources":["../../src/operations/validate_collection.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"validate_collection.js","sourceRoot":"","sources":["../../src/operations/validate_collection.ts"],"names":[],"mappings":";;;AAGA,+DAAkE;AAClE,oCAA8D;AAE9D,uCAAqF;AAQrF,gBAAgB;AAChB,MAAa,2BAA4B,SAAQ,oCAAoC;IAKnF,YAAY,KAAY,EAAE,cAAsB,EAAE,OAAkC;QAClF,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QALpB,iCAA4B,GAAG,2BAAe,CAAC;QAMtD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;IAED,IAAa,WAAW;QACtB,OAAO,UAAmB,CAAC;IAC7B,CAAC;IAEQ,oBAAoB,CAAC,WAAuB,EAAE,QAAwB;QAC7E,sCAAsC;QACtC,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,cAAc;YAC7B,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;SAC5F,CAAC;IACJ,CAAC;IAEQ,QAAQ,CAAC,QAAgE;QAChF,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ;YAC5D,MAAM,IAAI,0CAAkC,CAAC,4BAA4B,CAAC,CAAC;QAC7E,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,IAAI;YAC3E,MAAM,IAAI,0CAAkC,CAAC,sBAAsB,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QAC5F,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK;YACvC,MAAM,IAAI,0CAAkC,CAAC,sBAAsB,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QAE5F,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AAlCD,kEAkCC"}
|
package/lib/sdam/server.js
CHANGED
|
@@ -7,12 +7,14 @@ const errors_1 = require("../cmap/errors");
|
|
|
7
7
|
const constants_1 = require("../constants");
|
|
8
8
|
const error_1 = require("../error");
|
|
9
9
|
const mongo_types_1 = require("../mongo_types");
|
|
10
|
+
const aggregate_1 = require("../operations/aggregate");
|
|
10
11
|
const transactions_1 = require("../transactions");
|
|
11
12
|
const utils_1 = require("../utils");
|
|
12
13
|
const write_concern_1 = require("../write_concern");
|
|
13
14
|
const common_1 = require("./common");
|
|
14
15
|
const monitor_1 = require("./monitor");
|
|
15
16
|
const server_description_1 = require("./server_description");
|
|
17
|
+
const server_selection_1 = require("./server_selection");
|
|
16
18
|
const stateTransition = (0, utils_1.makeStateMachine)({
|
|
17
19
|
[common_1.STATE_CLOSED]: [common_1.STATE_CLOSED, common_1.STATE_CONNECTING],
|
|
18
20
|
[common_1.STATE_CONNECTING]: [common_1.STATE_CONNECTING, common_1.STATE_CLOSING, common_1.STATE_CONNECTED, common_1.STATE_CLOSED],
|
|
@@ -148,24 +150,45 @@ class Server extends mongo_types_1.TypedEventEmitter {
|
|
|
148
150
|
throw checkoutError;
|
|
149
151
|
}
|
|
150
152
|
}
|
|
151
|
-
|
|
153
|
+
let reauthPromise = null;
|
|
154
|
+
const cleanup = () => {
|
|
155
|
+
this.decrementOperationCount();
|
|
156
|
+
if (session?.pinnedConnection !== conn) {
|
|
157
|
+
if (reauthPromise != null) {
|
|
158
|
+
// The reauth promise only exists if it hasn't thrown.
|
|
159
|
+
const checkBackIn = () => {
|
|
160
|
+
this.pool.checkIn(conn);
|
|
161
|
+
};
|
|
162
|
+
void reauthPromise.then(checkBackIn, checkBackIn);
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
this.pool.checkIn(conn);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
};
|
|
169
|
+
let cmd;
|
|
170
|
+
try {
|
|
171
|
+
cmd = operation.buildCommand(conn, session);
|
|
172
|
+
}
|
|
173
|
+
catch (e) {
|
|
174
|
+
cleanup();
|
|
175
|
+
throw e;
|
|
176
|
+
}
|
|
152
177
|
const options = operation.buildOptions(timeoutContext);
|
|
153
178
|
const ns = operation.ns;
|
|
154
179
|
if (this.loadBalanced && isPinnableCommand(cmd, session) && !session?.pinnedConnection) {
|
|
155
180
|
session?.pin(conn);
|
|
156
181
|
}
|
|
157
182
|
options.directConnection = this.topology.s.options.directConnection;
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
if (options.omitReadPreference) {
|
|
183
|
+
const omitReadPreference = operation instanceof aggregate_1.AggregateOperation &&
|
|
184
|
+
operation.hasWriteStage &&
|
|
185
|
+
(0, utils_1.maxWireVersion)(conn) < server_selection_1.MIN_SECONDARY_WRITE_WIRE_VERSION;
|
|
186
|
+
if (omitReadPreference) {
|
|
163
187
|
delete options.readPreference;
|
|
164
188
|
}
|
|
165
189
|
if (this.description.iscryptd) {
|
|
166
190
|
options.omitMaxTimeMS = true;
|
|
167
191
|
}
|
|
168
|
-
let reauthPromise = null;
|
|
169
192
|
try {
|
|
170
193
|
try {
|
|
171
194
|
const res = await conn.command(ns, cmd, options, operation.SERVER_COMMAND_RESPONSE_TYPE);
|
|
@@ -200,19 +223,7 @@ class Server extends mongo_types_1.TypedEventEmitter {
|
|
|
200
223
|
}
|
|
201
224
|
}
|
|
202
225
|
finally {
|
|
203
|
-
|
|
204
|
-
if (session?.pinnedConnection !== conn) {
|
|
205
|
-
if (reauthPromise != null) {
|
|
206
|
-
// The reauth promise only exists if it hasn't thrown.
|
|
207
|
-
const checkBackIn = () => {
|
|
208
|
-
this.pool.checkIn(conn);
|
|
209
|
-
};
|
|
210
|
-
void reauthPromise.then(checkBackIn, checkBackIn);
|
|
211
|
-
}
|
|
212
|
-
else {
|
|
213
|
-
this.pool.checkIn(conn);
|
|
214
|
-
}
|
|
215
|
-
}
|
|
226
|
+
cleanup();
|
|
216
227
|
}
|
|
217
228
|
}
|
|
218
229
|
async command(ns, cmd, { ...options }, responseType) {
|
|
@@ -223,13 +234,6 @@ class Server extends mongo_types_1.TypedEventEmitter {
|
|
|
223
234
|
throw new error_1.MongoServerClosedError();
|
|
224
235
|
}
|
|
225
236
|
options.directConnection = this.topology.s.options.directConnection;
|
|
226
|
-
// There are cases where we need to flag the read preference not to get sent in
|
|
227
|
-
// the command, such as pre-5.0 servers attempting to perform an aggregate write
|
|
228
|
-
// with a non-primary read preference. In this case the effective read preference
|
|
229
|
-
// (primary) is not the same as the provided and must be removed completely.
|
|
230
|
-
if (options.omitReadPreference) {
|
|
231
|
-
delete options.readPreference;
|
|
232
|
-
}
|
|
233
237
|
if (this.description.iscryptd) {
|
|
234
238
|
options.omitMaxTimeMS = true;
|
|
235
239
|
}
|