mongodb 6.18.0 → 6.19.0
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/admin.js +2 -1
- package/lib/admin.js.map +1 -1
- package/lib/beta.d.ts +59 -7
- package/lib/bulk/common.js +19 -32
- package/lib/bulk/common.js.map +1 -1
- package/lib/client-side-encryption/client_encryption.js +4 -1
- package/lib/client-side-encryption/client_encryption.js.map +1 -1
- package/lib/client-side-encryption/state_machine.js +4 -0
- package/lib/client-side-encryption/state_machine.js.map +1 -1
- package/lib/cmap/connection.js.map +1 -1
- package/lib/collection.js +62 -19
- 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/cursor/run_command_cursor.js +2 -4
- package/lib/cursor/run_command_cursor.js.map +1 -1
- package/lib/db.js +12 -5
- package/lib/db.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/mongo_client.js +25 -2
- package/lib/mongo_client.js.map +1 -1
- package/lib/operations/aggregate.js +9 -7
- package/lib/operations/aggregate.js.map +1 -1
- package/lib/operations/client_bulk_write/client_bulk_write.js +8 -41
- package/lib/operations/client_bulk_write/client_bulk_write.js.map +1 -1
- package/lib/operations/command.js +16 -19
- package/lib/operations/command.js.map +1 -1
- package/lib/operations/count.js +7 -3
- package/lib/operations/count.js.map +1 -1
- package/lib/operations/create_collection.js +56 -49
- package/lib/operations/create_collection.js.map +1 -1
- package/lib/operations/delete.js +15 -12
- package/lib/operations/delete.js.map +1 -1
- package/lib/operations/distinct.js +18 -26
- package/lib/operations/distinct.js.map +1 -1
- package/lib/operations/drop.js +57 -39
- package/lib/operations/drop.js.map +1 -1
- package/lib/operations/estimated_document_count.js +7 -3
- package/lib/operations/estimated_document_count.js.map +1 -1
- package/lib/operations/execute_operation.js +14 -3
- package/lib/operations/execute_operation.js.map +1 -1
- package/lib/operations/find.js +21 -30
- package/lib/operations/find.js.map +1 -1
- package/lib/operations/find_and_modify.js +52 -41
- package/lib/operations/find_and_modify.js.map +1 -1
- package/lib/operations/get_more.js +10 -11
- package/lib/operations/get_more.js.map +1 -1
- package/lib/operations/indexes.js +21 -12
- package/lib/operations/indexes.js.map +1 -1
- package/lib/operations/insert.js +8 -47
- package/lib/operations/insert.js.map +1 -1
- package/lib/operations/kill_cursors.js +13 -15
- package/lib/operations/kill_cursors.js.map +1 -1
- package/lib/operations/list_collections.js +7 -6
- package/lib/operations/list_collections.js.map +1 -1
- package/lib/operations/list_databases.js +5 -3
- package/lib/operations/list_databases.js.map +1 -1
- package/lib/operations/operation.js +30 -1
- package/lib/operations/operation.js.map +1 -1
- package/lib/operations/profiling_level.js +14 -4
- package/lib/operations/profiling_level.js.map +1 -1
- package/lib/operations/remove_user.js +6 -2
- package/lib/operations/remove_user.js.map +1 -1
- package/lib/operations/rename.js +10 -8
- package/lib/operations/rename.js.map +1 -1
- package/lib/operations/run_command.js +28 -32
- package/lib/operations/run_command.js.map +1 -1
- package/lib/operations/search_indexes/create.js +11 -8
- package/lib/operations/search_indexes/create.js.map +1 -1
- package/lib/operations/search_indexes/drop.js +16 -9
- package/lib/operations/search_indexes/drop.js.map +1 -1
- package/lib/operations/search_indexes/update.js +11 -4
- package/lib/operations/search_indexes/update.js.map +1 -1
- package/lib/operations/set_profiling_level.js +8 -4
- package/lib/operations/set_profiling_level.js.map +1 -1
- package/lib/operations/stats.js +4 -2
- package/lib/operations/stats.js.map +1 -1
- package/lib/operations/update.js +22 -19
- package/lib/operations/update.js.map +1 -1
- package/lib/operations/validate_collection.js +17 -18
- package/lib/operations/validate_collection.js.map +1 -1
- package/lib/sdam/server.js +46 -35
- package/lib/sdam/server.js.map +1 -1
- package/lib/sdam/topology.js +4 -3
- package/lib/sdam/topology.js.map +1 -1
- package/lib/sessions.js +3 -3
- package/lib/sessions.js.map +1 -1
- package/lib/utils.js +8 -13
- package/lib/utils.js.map +1 -1
- package/mongodb.d.ts +59 -7
- package/package.json +18 -18
- package/src/admin.ts +3 -2
- package/src/bulk/common.ts +21 -41
- package/src/client-side-encryption/client_encryption.ts +52 -3
- package/src/client-side-encryption/state_machine.ts +5 -1
- package/src/cmap/connection.ts +0 -1
- package/src/collection.ts +94 -65
- 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/cursor/run_command_cursor.ts +4 -5
- package/src/db.ts +16 -19
- package/src/explain.ts +0 -49
- package/src/index.ts +4 -4
- package/src/mongo_client.ts +24 -9
- package/src/operations/aggregate.ts +15 -20
- package/src/operations/client_bulk_write/client_bulk_write.ts +21 -65
- package/src/operations/command.ts +22 -45
- package/src/operations/count.ts +9 -9
- package/src/operations/create_collection.ts +83 -75
- package/src/operations/delete.ts +27 -35
- package/src/operations/distinct.ts +23 -40
- package/src/operations/drop.ts +76 -60
- package/src/operations/estimated_document_count.ts +8 -9
- package/src/operations/execute_operation.ts +21 -11
- package/src/operations/find.ts +40 -57
- package/src/operations/find_and_modify.ts +78 -54
- package/src/operations/get_more.ts +17 -19
- package/src/operations/indexes.ts +26 -30
- package/src/operations/insert.ts +11 -77
- package/src/operations/kill_cursors.ts +21 -22
- package/src/operations/list_collections.ts +13 -21
- package/src/operations/list_databases.ts +6 -15
- package/src/operations/operation.ts +47 -10
- package/src/operations/profiling_level.ts +17 -11
- package/src/operations/remove_user.ts +9 -9
- package/src/operations/rename.ts +11 -14
- package/src/operations/run_command.ts +40 -68
- package/src/operations/search_indexes/create.ts +15 -15
- package/src/operations/search_indexes/drop.ts +23 -14
- package/src/operations/search_indexes/update.ts +14 -9
- package/src/operations/set_profiling_level.ts +13 -11
- package/src/operations/stats.ts +5 -10
- package/src/operations/update.ts +49 -52
- package/src/operations/validate_collection.ts +19 -27
- package/src/sdam/server.ts +56 -59
- package/src/sdam/topology.ts +5 -4
- package/src/sessions.ts +5 -4
- package/src/utils.ts +10 -25
- package/lib/operations/bulk_write.js +0 -39
- package/lib/operations/bulk_write.js.map +0 -1
- package/lib/operations/collections.js +0 -33
- package/lib/operations/collections.js.map +0 -1
- package/lib/operations/is_capped.js +0 -28
- package/lib/operations/is_capped.js.map +0 -1
- package/lib/operations/options_operation.js +0 -28
- package/lib/operations/options_operation.js.map +0 -1
- package/src/operations/bulk_write.ts +0 -64
- package/src/operations/collections.ts +0 -47
- package/src/operations/is_capped.ts +0 -35
- package/src/operations/options_operation.ts +0 -35
package/lib/operations/delete.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DeleteManyOperation = exports.DeleteOneOperation = exports.DeleteOperation = void 0;
|
|
4
4
|
exports.makeDeleteStatement = makeDeleteStatement;
|
|
5
|
+
const responses_1 = require("../cmap/wire_protocol/responses");
|
|
5
6
|
const error_1 = require("../error");
|
|
6
7
|
const command_1 = require("./command");
|
|
7
8
|
const operation_1 = require("./operation");
|
|
@@ -9,6 +10,7 @@ const operation_1 = require("./operation");
|
|
|
9
10
|
class DeleteOperation extends command_1.CommandOperation {
|
|
10
11
|
constructor(ns, statements, options) {
|
|
11
12
|
super(undefined, options);
|
|
13
|
+
this.SERVER_COMMAND_RESPONSE_TYPE = responses_1.MongoDBResponse;
|
|
12
14
|
this.options = options;
|
|
13
15
|
this.ns = ns;
|
|
14
16
|
this.statements = statements;
|
|
@@ -22,8 +24,8 @@ class DeleteOperation extends command_1.CommandOperation {
|
|
|
22
24
|
}
|
|
23
25
|
return this.statements.every(op => (op.limit != null ? op.limit > 0 : true));
|
|
24
26
|
}
|
|
25
|
-
|
|
26
|
-
const options = this.options
|
|
27
|
+
buildCommandDocument(_connection, _session) {
|
|
28
|
+
const options = this.options;
|
|
27
29
|
const ordered = typeof options.ordered === 'boolean' ? options.ordered : true;
|
|
28
30
|
const command = {
|
|
29
31
|
delete: this.ns.collection,
|
|
@@ -45,17 +47,17 @@ class DeleteOperation extends command_1.CommandOperation {
|
|
|
45
47
|
throw new error_1.MongoCompatibilityError(`hint is not supported with unacknowledged writes`);
|
|
46
48
|
}
|
|
47
49
|
}
|
|
48
|
-
|
|
49
|
-
return res;
|
|
50
|
+
return command;
|
|
50
51
|
}
|
|
51
52
|
}
|
|
52
53
|
exports.DeleteOperation = DeleteOperation;
|
|
53
54
|
class DeleteOneOperation extends DeleteOperation {
|
|
54
|
-
constructor(
|
|
55
|
-
super(
|
|
55
|
+
constructor(ns, filter, options) {
|
|
56
|
+
super(ns, [makeDeleteStatement(filter, { ...options, limit: 1 })], options);
|
|
56
57
|
}
|
|
57
|
-
|
|
58
|
-
const res =
|
|
58
|
+
handleOk(response) {
|
|
59
|
+
const res = super.handleOk(response);
|
|
60
|
+
// @ts-expect-error Explain commands have broken TS
|
|
59
61
|
if (this.explain)
|
|
60
62
|
return res;
|
|
61
63
|
if (res.code)
|
|
@@ -70,11 +72,12 @@ class DeleteOneOperation extends DeleteOperation {
|
|
|
70
72
|
}
|
|
71
73
|
exports.DeleteOneOperation = DeleteOneOperation;
|
|
72
74
|
class DeleteManyOperation extends DeleteOperation {
|
|
73
|
-
constructor(
|
|
74
|
-
super(
|
|
75
|
+
constructor(ns, filter, options) {
|
|
76
|
+
super(ns, [makeDeleteStatement(filter, options)], options);
|
|
75
77
|
}
|
|
76
|
-
|
|
77
|
-
const res =
|
|
78
|
+
handleOk(response) {
|
|
79
|
+
const res = super.handleOk(response);
|
|
80
|
+
// @ts-expect-error Explain commands have broken TS
|
|
78
81
|
if (this.explain)
|
|
79
82
|
return res;
|
|
80
83
|
if (res.code)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../src/operations/delete.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../src/operations/delete.ts"],"names":[],"mappings":";;;AAgJA,kDAkBC;AAhKD,+DAAkE;AAClE,oCAAqE;AAIrE,uCAAkG;AAClG,2CAA+D;AAkC/D,gBAAgB;AAChB,MAAa,eAAgB,SAAQ,0BAA0B;IAK7D,YAAY,EAAoB,EAAE,UAA6B,EAAE,OAAsB;QACrF,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QALnB,iCAA4B,GAAG,2BAAe,CAAC;QAMtD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,IAAa,WAAW;QACtB,OAAO,QAAiB,CAAC;IAC3B,CAAC;IAED,IAAa,aAAa;QACxB,IAAI,KAAK,CAAC,aAAa,KAAK,KAAK,EAAE,CAAC;YAClC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/E,CAAC;IAEQ,oBAAoB,CAAC,WAAuB,EAAE,QAAwB;QAC7E,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAE7B,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9E,MAAM,OAAO,GAAa;YACxB,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,UAAU;YAC1B,OAAO,EAAE,IAAI,CAAC,UAAU;YACxB,OAAO;SACR,CAAC;QAEF,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QAC5B,CAAC;QAED,iEAAiE;QACjE,gDAAgD;QAChD,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAClC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QACpC,CAAC;QAED,MAAM,mBAAmB,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,mBAAmB,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAW,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClD,iEAAiE;gBACjE,MAAM,IAAI,+BAAuB,CAAC,kDAAkD,CAAC,CAAC;YACxF,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAtDD,0CAsDC;AAED,MAAa,kBAAmB,SAAQ,eAAe;IACrD,YAAY,EAA8B,EAAE,MAAgB,EAAE,OAAsB;QAClF,KAAK,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC9E,CAAC;IAEQ,QAAQ,CACf,QAAgE;QAEhE,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAErC,mDAAmD;QACnD,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,GAAG,CAAC;QAE7B,IAAI,GAAG,CAAC,IAAI;YAAE,MAAM,IAAI,wBAAgB,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,GAAG,CAAC,WAAW;YAAE,MAAM,IAAI,wBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpE,OAAO;YACL,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC;YACxC,YAAY,EAAE,GAAG,CAAC,CAAC;SACpB,CAAC;IACJ,CAAC;CACF;AArBD,gDAqBC;AACD,MAAa,mBAAoB,SAAQ,eAAe;IACtD,YAAY,EAA8B,EAAE,MAAgB,EAAE,OAAsB;QAClF,KAAK,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;IAEQ,QAAQ,CACf,QAAgE;QAEhE,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAErC,mDAAmD;QACnD,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,GAAG,CAAC;QAE7B,IAAI,GAAG,CAAC,IAAI;YAAE,MAAM,IAAI,wBAAgB,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,GAAG,CAAC,WAAW;YAAE,MAAM,IAAI,wBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpE,OAAO;YACL,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC;YACxC,YAAY,EAAE,GAAG,CAAC,CAAC;SACpB,CAAC;IACJ,CAAC;CACF;AArBD,kDAqBC;AAED,SAAgB,mBAAmB,CACjC,MAAgB,EAChB,OAA2C;IAE3C,MAAM,EAAE,GAAoB;QAC1B,CAAC,EAAE,MAAM;QACT,KAAK,EAAE,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAC7D,CAAC;IAEF,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,EAAE,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IACnC,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,EAAE,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IACzB,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,IAAA,yBAAa,EAAC,eAAe,EAAE,CAAC,kBAAM,CAAC,SAAS,EAAE,kBAAM,CAAC,eAAe,CAAC,CAAC,CAAC;AAC3E,IAAA,yBAAa,EAAC,kBAAkB,EAAE;IAChC,kBAAM,CAAC,SAAS;IAChB,kBAAM,CAAC,eAAe;IACtB,kBAAM,CAAC,WAAW;IAClB,kBAAM,CAAC,cAAc;CACtB,CAAC,CAAC;AACH,IAAA,yBAAa,EAAC,mBAAmB,EAAE;IACjC,kBAAM,CAAC,eAAe;IACtB,kBAAM,CAAC,WAAW;IAClB,kBAAM,CAAC,cAAc;CACtB,CAAC,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DistinctOperation = void 0;
|
|
4
|
-
const
|
|
4
|
+
const responses_1 = require("../cmap/wire_protocol/responses");
|
|
5
5
|
const command_1 = require("./command");
|
|
6
6
|
const operation_1 = require("./operation");
|
|
7
7
|
/**
|
|
@@ -19,6 +19,7 @@ class DistinctOperation extends command_1.CommandOperation {
|
|
|
19
19
|
*/
|
|
20
20
|
constructor(collection, key, query, options) {
|
|
21
21
|
super(collection, options);
|
|
22
|
+
this.SERVER_COMMAND_RESPONSE_TYPE = responses_1.MongoDBResponse;
|
|
22
23
|
this.options = options ?? {};
|
|
23
24
|
this.collection = collection;
|
|
24
25
|
this.key = key;
|
|
@@ -27,36 +28,27 @@ class DistinctOperation extends command_1.CommandOperation {
|
|
|
27
28
|
get commandName() {
|
|
28
29
|
return 'distinct';
|
|
29
30
|
}
|
|
30
|
-
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
// Distinct command
|
|
36
|
-
const cmd = {
|
|
37
|
-
distinct: coll.collectionName,
|
|
38
|
-
key: key,
|
|
39
|
-
query: query
|
|
31
|
+
buildCommandDocument(_connection) {
|
|
32
|
+
const command = {
|
|
33
|
+
distinct: this.collection.collectionName,
|
|
34
|
+
key: this.key,
|
|
35
|
+
query: this.query
|
|
40
36
|
};
|
|
41
|
-
// Add maxTimeMS if defined
|
|
42
|
-
if (typeof options.maxTimeMS === 'number') {
|
|
43
|
-
cmd.maxTimeMS = options.maxTimeMS;
|
|
44
|
-
}
|
|
45
37
|
// we check for undefined specifically here to allow falsy values
|
|
46
38
|
// eslint-disable-next-line no-restricted-syntax
|
|
47
|
-
if (
|
|
48
|
-
|
|
39
|
+
if (this.options.comment !== undefined) {
|
|
40
|
+
command.comment = this.options.comment;
|
|
41
|
+
}
|
|
42
|
+
if (this.options.hint != null) {
|
|
43
|
+
command.hint = this.options.hint;
|
|
49
44
|
}
|
|
50
|
-
|
|
51
|
-
|
|
45
|
+
return command;
|
|
46
|
+
}
|
|
47
|
+
handleOk(response) {
|
|
48
|
+
if (this.explain) {
|
|
49
|
+
return response.toObject(this.bsonOptions);
|
|
52
50
|
}
|
|
53
|
-
|
|
54
|
-
(0, utils_1.decorateWithReadConcern)(cmd, coll, options);
|
|
55
|
-
// Have we specified collation
|
|
56
|
-
(0, utils_1.decorateWithCollation)(cmd, coll, options);
|
|
57
|
-
const result = await super.executeCommand(server, session, cmd, timeoutContext);
|
|
58
|
-
// @ts-expect-error: Explain always returns a document
|
|
59
|
-
return this.explain ? result : result.values;
|
|
51
|
+
return response.toObject(this.bsonOptions).values;
|
|
60
52
|
}
|
|
61
53
|
}
|
|
62
54
|
exports.DistinctOperation = DistinctOperation;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"distinct.js","sourceRoot":"","sources":["../../src/operations/distinct.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"distinct.js","sourceRoot":"","sources":["../../src/operations/distinct.ts"],"names":[],"mappings":";;;AAEA,+DAAkE;AAElE,uCAA2E;AAC3E,2CAAoD;AAkBpD;;;GAGG;AACH,MAAa,iBAAkB,SAAQ,0BAAkC;IASvE;;;;;;;OAOG;IACH,YAAY,UAAsB,EAAE,GAAW,EAAE,KAAe,EAAE,OAAyB;QACzF,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAjBpB,iCAA4B,GAAG,2BAAe,CAAC;QAmBtD,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,IAAa,WAAW;QACtB,OAAO,UAAmB,CAAC;IAC7B,CAAC;IAEQ,oBAAoB,CAAC,WAAuB;QACnD,MAAM,OAAO,GAAa;YACxB,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,cAAc;YACxC,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC;QACF,iEAAiE;QACjE,gDAAgD;QAChD,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACvC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QACzC,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;YAC9B,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QACnC,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEQ,QAAQ,CACf,QAAgE;QAEhE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC;IACpD,CAAC;CACF;AAzDD,8CAyDC;AAED,IAAA,yBAAa,EAAC,iBAAiB,EAAE,CAAC,kBAAM,CAAC,cAAc,EAAE,kBAAM,CAAC,SAAS,EAAE,kBAAM,CAAC,WAAW,CAAC,CAAC,CAAC"}
|
package/lib/operations/drop.js
CHANGED
|
@@ -1,72 +1,90 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DropDatabaseOperation = exports.DropCollectionOperation = void 0;
|
|
4
|
+
exports.dropCollections = dropCollections;
|
|
5
|
+
const __1 = require("..");
|
|
6
|
+
const responses_1 = require("../cmap/wire_protocol/responses");
|
|
7
|
+
const abstract_cursor_1 = require("../cursor/abstract_cursor");
|
|
4
8
|
const error_1 = require("../error");
|
|
9
|
+
const timeout_1 = require("../timeout");
|
|
5
10
|
const command_1 = require("./command");
|
|
11
|
+
const execute_operation_1 = require("./execute_operation");
|
|
6
12
|
const operation_1 = require("./operation");
|
|
7
13
|
/** @internal */
|
|
8
14
|
class DropCollectionOperation extends command_1.CommandOperation {
|
|
9
15
|
constructor(db, name, options = {}) {
|
|
10
16
|
super(db, options);
|
|
11
|
-
this.
|
|
17
|
+
this.SERVER_COMMAND_RESPONSE_TYPE = responses_1.MongoDBResponse;
|
|
12
18
|
this.options = options;
|
|
13
19
|
this.name = name;
|
|
14
20
|
}
|
|
15
21
|
get commandName() {
|
|
16
22
|
return 'drop';
|
|
17
23
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
const options = this.options;
|
|
21
|
-
const name = this.name;
|
|
22
|
-
const encryptedFieldsMap = db.client.s.options.autoEncryption?.encryptedFieldsMap;
|
|
23
|
-
let encryptedFields = options.encryptedFields ?? encryptedFieldsMap?.[`${db.databaseName}.${name}`];
|
|
24
|
-
if (!encryptedFields && encryptedFieldsMap) {
|
|
25
|
-
// If the MongoClient was configured with an encryptedFieldsMap,
|
|
26
|
-
// and no encryptedFields config was available in it or explicitly
|
|
27
|
-
// passed as an argument, the spec tells us to look one up using
|
|
28
|
-
// listCollections().
|
|
29
|
-
const listCollectionsResult = await db
|
|
30
|
-
.listCollections({ name }, { nameOnly: false })
|
|
31
|
-
.toArray();
|
|
32
|
-
encryptedFields = listCollectionsResult?.[0]?.options?.encryptedFields;
|
|
33
|
-
}
|
|
34
|
-
if (encryptedFields) {
|
|
35
|
-
const escCollection = encryptedFields.escCollection || `enxcol_.${name}.esc`;
|
|
36
|
-
const ecocCollection = encryptedFields.ecocCollection || `enxcol_.${name}.ecoc`;
|
|
37
|
-
for (const collectionName of [escCollection, ecocCollection]) {
|
|
38
|
-
// Drop auxilliary collections, ignoring potential NamespaceNotFound errors.
|
|
39
|
-
const dropOp = new DropCollectionOperation(db, collectionName);
|
|
40
|
-
try {
|
|
41
|
-
await dropOp.executeWithoutEncryptedFieldsCheck(server, session, timeoutContext);
|
|
42
|
-
}
|
|
43
|
-
catch (err) {
|
|
44
|
-
if (!(err instanceof error_1.MongoServerError) ||
|
|
45
|
-
err.code !== error_1.MONGODB_ERROR_CODES.NamespaceNotFound) {
|
|
46
|
-
throw err;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
return await this.executeWithoutEncryptedFieldsCheck(server, session, timeoutContext);
|
|
24
|
+
buildCommandDocument(_connection, _session) {
|
|
25
|
+
return { drop: this.name };
|
|
52
26
|
}
|
|
53
|
-
|
|
54
|
-
await super.executeCommand(server, session, { drop: this.name }, timeoutContext);
|
|
27
|
+
handleOk(_response) {
|
|
55
28
|
return true;
|
|
56
29
|
}
|
|
57
30
|
}
|
|
58
31
|
exports.DropCollectionOperation = DropCollectionOperation;
|
|
32
|
+
async function dropCollections(db, name, options) {
|
|
33
|
+
const timeoutContext = timeout_1.TimeoutContext.create({
|
|
34
|
+
session: options.session,
|
|
35
|
+
serverSelectionTimeoutMS: db.client.s.options.serverSelectionTimeoutMS,
|
|
36
|
+
waitQueueTimeoutMS: db.client.s.options.waitQueueTimeoutMS,
|
|
37
|
+
timeoutMS: options.timeoutMS
|
|
38
|
+
});
|
|
39
|
+
const encryptedFieldsMap = db.client.s.options.autoEncryption?.encryptedFieldsMap;
|
|
40
|
+
let encryptedFields = options.encryptedFields ?? encryptedFieldsMap?.[`${db.databaseName}.${name}`];
|
|
41
|
+
if (!encryptedFields && encryptedFieldsMap) {
|
|
42
|
+
// If the MongoClient was configured with an encryptedFieldsMap,
|
|
43
|
+
// and no encryptedFields config was available in it or explicitly
|
|
44
|
+
// passed as an argument, the spec tells us to look one up using
|
|
45
|
+
// listCollections().
|
|
46
|
+
const listCollectionsResult = await db
|
|
47
|
+
.listCollections({ name }, {
|
|
48
|
+
nameOnly: false,
|
|
49
|
+
session: options.session,
|
|
50
|
+
timeoutContext: new abstract_cursor_1.CursorTimeoutContext(timeoutContext, Symbol())
|
|
51
|
+
})
|
|
52
|
+
.toArray();
|
|
53
|
+
encryptedFields = listCollectionsResult?.[0]?.options?.encryptedFields;
|
|
54
|
+
}
|
|
55
|
+
if (encryptedFields) {
|
|
56
|
+
const escCollection = encryptedFields.escCollection || `enxcol_.${name}.esc`;
|
|
57
|
+
const ecocCollection = encryptedFields.ecocCollection || `enxcol_.${name}.ecoc`;
|
|
58
|
+
for (const collectionName of [escCollection, ecocCollection]) {
|
|
59
|
+
// Drop auxilliary collections, ignoring potential NamespaceNotFound errors.
|
|
60
|
+
const dropOp = new DropCollectionOperation(db, collectionName, options);
|
|
61
|
+
try {
|
|
62
|
+
await (0, execute_operation_1.executeOperation)(db.client, dropOp, timeoutContext);
|
|
63
|
+
}
|
|
64
|
+
catch (err) {
|
|
65
|
+
if (!(err instanceof __1.MongoServerError) ||
|
|
66
|
+
err.code !== error_1.MONGODB_ERROR_CODES.NamespaceNotFound) {
|
|
67
|
+
throw err;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return await (0, execute_operation_1.executeOperation)(db.client, new DropCollectionOperation(db, name, options), timeoutContext);
|
|
73
|
+
}
|
|
59
74
|
/** @internal */
|
|
60
75
|
class DropDatabaseOperation extends command_1.CommandOperation {
|
|
61
76
|
constructor(db, options) {
|
|
62
77
|
super(db, options);
|
|
78
|
+
this.SERVER_COMMAND_RESPONSE_TYPE = responses_1.MongoDBResponse;
|
|
63
79
|
this.options = options;
|
|
64
80
|
}
|
|
65
81
|
get commandName() {
|
|
66
82
|
return 'dropDatabase';
|
|
67
83
|
}
|
|
68
|
-
|
|
69
|
-
|
|
84
|
+
buildCommandDocument(_connection, _session) {
|
|
85
|
+
return { dropDatabase: 1 };
|
|
86
|
+
}
|
|
87
|
+
handleOk(_response) {
|
|
70
88
|
return true;
|
|
71
89
|
}
|
|
72
90
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drop.js","sourceRoot":"","sources":["../../src/operations/drop.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"drop.js","sourceRoot":"","sources":["../../src/operations/drop.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.EstimatedDocumentCountOperation = void 0;
|
|
4
|
+
const responses_1 = require("../cmap/wire_protocol/responses");
|
|
4
5
|
const command_1 = require("./command");
|
|
5
6
|
const operation_1 = require("./operation");
|
|
6
7
|
/** @internal */
|
|
7
8
|
class EstimatedDocumentCountOperation extends command_1.CommandOperation {
|
|
8
9
|
constructor(collection, options = {}) {
|
|
9
10
|
super(collection, options);
|
|
11
|
+
this.SERVER_COMMAND_RESPONSE_TYPE = responses_1.MongoDBResponse;
|
|
10
12
|
this.options = options;
|
|
11
13
|
this.collectionName = collection.collectionName;
|
|
12
14
|
}
|
|
13
15
|
get commandName() {
|
|
14
16
|
return 'count';
|
|
15
17
|
}
|
|
16
|
-
|
|
18
|
+
buildCommandDocument(_connection, _session) {
|
|
17
19
|
const cmd = { count: this.collectionName };
|
|
18
20
|
if (typeof this.options.maxTimeMS === 'number') {
|
|
19
21
|
cmd.maxTimeMS = this.options.maxTimeMS;
|
|
@@ -23,8 +25,10 @@ class EstimatedDocumentCountOperation extends command_1.CommandOperation {
|
|
|
23
25
|
if (this.options.comment !== undefined) {
|
|
24
26
|
cmd.comment = this.options.comment;
|
|
25
27
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
+
return cmd;
|
|
29
|
+
}
|
|
30
|
+
handleOk(response) {
|
|
31
|
+
return response.getNumber('n') ?? 0;
|
|
28
32
|
}
|
|
29
33
|
}
|
|
30
34
|
exports.EstimatedDocumentCountOperation = EstimatedDocumentCountOperation;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"estimated_document_count.js","sourceRoot":"","sources":["../../src/operations/estimated_document_count.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"estimated_document_count.js","sourceRoot":"","sources":["../../src/operations/estimated_document_count.ts"],"names":[],"mappings":";;;AAEA,+DAAkE;AAGlE,uCAA2E;AAC3E,2CAAoD;AAYpD,gBAAgB;AAChB,MAAa,+BAAgC,SAAQ,0BAAwB;IAK3E,YAAY,UAAsB,EAAE,UAAyC,EAAE;QAC7E,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QALpB,iCAA4B,GAAG,2BAAe,CAAC;QAMtD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,cAAc,CAAC;IAClD,CAAC;IAED,IAAa,WAAW;QACtB,OAAO,OAAgB,CAAC;IAC1B,CAAC;IAEQ,oBAAoB,CAAC,WAAuB,EAAE,QAAwB;QAC7E,MAAM,GAAG,GAAa,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;QAErD,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC/C,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACzC,CAAC;QAED,iEAAiE;QACjE,gDAAgD;QAChD,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACvC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QACrC,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAEQ,QAAQ,CAAC,QAAgE;QAChF,OAAO,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;CACF;AAlCD,0EAkCC;AAED,IAAA,yBAAa,EAAC,+BAA+B,EAAE;IAC7C,kBAAM,CAAC,cAAc;IACrB,kBAAM,CAAC,SAAS;IAChB,kBAAM,CAAC,eAAe;CACvB,CAAC,CAAC"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.executeOperation = executeOperation;
|
|
4
|
+
exports.autoConnect = autoConnect;
|
|
4
5
|
const error_1 = require("../error");
|
|
5
6
|
const read_preference_1 = require("../read_preference");
|
|
6
7
|
const server_selection_1 = require("../sdam/server_selection");
|
|
7
8
|
const timeout_1 = require("../timeout");
|
|
8
9
|
const utils_1 = require("../utils");
|
|
10
|
+
const aggregate_1 = require("./aggregate");
|
|
9
11
|
const operation_1 = require("./operation");
|
|
10
12
|
const MMAPv1_RETRY_WRITES_ERROR_CODE = error_1.MONGODB_ERROR_CODES.IllegalOperation;
|
|
11
13
|
const MMAPv1_RETRY_WRITES_ERROR_MESSAGE = 'This MongoDB deployment does not support retryable writes. Please add retryWrites=false to your connection string.';
|
|
@@ -54,6 +56,7 @@ async function executeOperation(client, operation, timeoutContext) {
|
|
|
54
56
|
else if (session.client !== client) {
|
|
55
57
|
throw new error_1.MongoInvalidArgumentError('ClientSession must be from the same MongoClient');
|
|
56
58
|
}
|
|
59
|
+
operation.session ??= session;
|
|
57
60
|
const readPreference = operation.readPreference ?? read_preference_1.ReadPreference.primary;
|
|
58
61
|
const inTransaction = !!session?.inTransaction();
|
|
59
62
|
const hasReadAspect = operation.hasAspect(operation_1.Aspect.READ_OPERATION);
|
|
@@ -134,7 +137,7 @@ async function tryOperation(operation, { topology, timeoutContext, session, read
|
|
|
134
137
|
// in an unknown state.
|
|
135
138
|
selector = (0, server_selection_1.sameServerSelector)(operation.server?.description);
|
|
136
139
|
}
|
|
137
|
-
else if (operation.
|
|
140
|
+
else if (operation instanceof aggregate_1.AggregateOperation && operation.hasWriteStage) {
|
|
138
141
|
// If operation should try to write to secondary use the custom server selector
|
|
139
142
|
// otherwise provide the read preference.
|
|
140
143
|
selector = (0, server_selection_1.secondaryWritableServerSelector)(topology.commonWireVersion, readPreference);
|
|
@@ -180,8 +183,9 @@ async function tryOperation(operation, { topology, timeoutContext, session, read
|
|
|
180
183
|
}
|
|
181
184
|
if (hasWriteAspect && !(0, error_1.isRetryableWriteError)(previousOperationError))
|
|
182
185
|
throw previousOperationError;
|
|
183
|
-
if (hasReadAspect && !(0, error_1.isRetryableReadError)(previousOperationError))
|
|
186
|
+
if (hasReadAspect && !(0, error_1.isRetryableReadError)(previousOperationError)) {
|
|
184
187
|
throw previousOperationError;
|
|
188
|
+
}
|
|
185
189
|
if (previousOperationError instanceof error_1.MongoNetworkError &&
|
|
186
190
|
operation.hasAspect(operation_1.Aspect.CURSOR_CREATING) &&
|
|
187
191
|
session != null &&
|
|
@@ -199,12 +203,19 @@ async function tryOperation(operation, { topology, timeoutContext, session, read
|
|
|
199
203
|
throw new error_1.MongoUnexpectedServerResponseError('Selected server does not support retryable writes');
|
|
200
204
|
}
|
|
201
205
|
}
|
|
206
|
+
operation.server = server;
|
|
202
207
|
try {
|
|
203
208
|
// If tries > 0 and we are command batching we need to reset the batch.
|
|
204
209
|
if (tries > 0 && operation.hasAspect(operation_1.Aspect.COMMAND_BATCHING)) {
|
|
205
210
|
operation.resetBatch();
|
|
206
211
|
}
|
|
207
|
-
|
|
212
|
+
try {
|
|
213
|
+
const result = await server.command(operation, timeoutContext);
|
|
214
|
+
return operation.handleOk(result);
|
|
215
|
+
}
|
|
216
|
+
catch (error) {
|
|
217
|
+
return operation.handleError(error);
|
|
218
|
+
}
|
|
208
219
|
}
|
|
209
220
|
catch (operationError) {
|
|
210
221
|
if (!(operationError instanceof error_1.MongoError))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute_operation.js","sourceRoot":"","sources":["../../src/operations/execute_operation.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"execute_operation.js","sourceRoot":"","sources":["../../src/operations/execute_operation.ts"],"names":[],"mappings":"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"}
|
package/lib/operations/find.js
CHANGED
|
@@ -3,8 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.FindOperation = void 0;
|
|
4
4
|
const responses_1 = require("../cmap/wire_protocol/responses");
|
|
5
5
|
const error_1 = require("../error");
|
|
6
|
-
const explain_1 = require("../explain");
|
|
7
|
-
const read_concern_1 = require("../read_concern");
|
|
8
6
|
const sort_1 = require("../sort");
|
|
9
7
|
const utils_1 = require("../utils");
|
|
10
8
|
const command_1 = require("./command");
|
|
@@ -13,6 +11,7 @@ const operation_1 = require("./operation");
|
|
|
13
11
|
class FindOperation extends command_1.CommandOperation {
|
|
14
12
|
constructor(ns, filter = {}, options = {}) {
|
|
15
13
|
super(undefined, options);
|
|
14
|
+
this.SERVER_COMMAND_RESPONSE_TYPE = responses_1.CursorResponse;
|
|
16
15
|
this.options = { ...options };
|
|
17
16
|
delete this.options.writeConcern;
|
|
18
17
|
this.ns = ns;
|
|
@@ -21,25 +20,25 @@ class FindOperation extends command_1.CommandOperation {
|
|
|
21
20
|
}
|
|
22
21
|
// special case passing in an ObjectId as a filter
|
|
23
22
|
this.filter = filter != null && filter._bsontype === 'ObjectId' ? { _id: filter } : filter;
|
|
23
|
+
this.SERVER_COMMAND_RESPONSE_TYPE = this.explain ? responses_1.ExplainedCursorResponse : responses_1.CursorResponse;
|
|
24
24
|
}
|
|
25
25
|
get commandName() {
|
|
26
26
|
return 'find';
|
|
27
27
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
const options = this.options;
|
|
31
|
-
let findCommand = makeFindCommand(this.ns, this.filter, options);
|
|
32
|
-
if (this.explain) {
|
|
33
|
-
(0, explain_1.validateExplainTimeoutOptions)(this.options, this.explain);
|
|
34
|
-
findCommand = (0, explain_1.decorateWithExplain)(findCommand, this.explain);
|
|
35
|
-
}
|
|
36
|
-
return await server.command(this.ns, findCommand, {
|
|
28
|
+
buildOptions(timeoutContext) {
|
|
29
|
+
return {
|
|
37
30
|
...this.options,
|
|
38
31
|
...this.bsonOptions,
|
|
39
32
|
documentsReturnedIn: 'firstBatch',
|
|
40
|
-
session,
|
|
33
|
+
session: this.session,
|
|
41
34
|
timeoutContext
|
|
42
|
-
}
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
handleOk(response) {
|
|
38
|
+
return response;
|
|
39
|
+
}
|
|
40
|
+
buildCommandDocument() {
|
|
41
|
+
return makeFindCommand(this.ns, this.filter, this.options);
|
|
43
42
|
}
|
|
44
43
|
}
|
|
45
44
|
exports.FindOperation = FindOperation;
|
|
@@ -80,15 +79,17 @@ function makeFindCommand(ns, filter, options) {
|
|
|
80
79
|
}
|
|
81
80
|
if (typeof options.batchSize === 'number') {
|
|
82
81
|
if (options.batchSize < 0) {
|
|
83
|
-
|
|
84
|
-
options.limit !== 0 &&
|
|
85
|
-
Math.abs(options.batchSize) < Math.abs(options.limit)) {
|
|
86
|
-
findCommand.limit = -options.batchSize;
|
|
87
|
-
}
|
|
88
|
-
findCommand.singleBatch = true;
|
|
82
|
+
findCommand.limit = -options.batchSize;
|
|
89
83
|
}
|
|
90
84
|
else {
|
|
91
|
-
|
|
85
|
+
if (options.batchSize === options.limit) {
|
|
86
|
+
// Spec dictates that if these are equal the batchSize should be one more than the
|
|
87
|
+
// limit to avoid leaving the cursor open.
|
|
88
|
+
findCommand.batchSize = options.batchSize + 1;
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
findCommand.batchSize = options.batchSize;
|
|
92
|
+
}
|
|
92
93
|
}
|
|
93
94
|
}
|
|
94
95
|
if (typeof options.singleBatch === 'boolean') {
|
|
@@ -99,13 +100,6 @@ function makeFindCommand(ns, filter, options) {
|
|
|
99
100
|
if (options.comment !== undefined) {
|
|
100
101
|
findCommand.comment = options.comment;
|
|
101
102
|
}
|
|
102
|
-
if (typeof options.maxTimeMS === 'number') {
|
|
103
|
-
findCommand.maxTimeMS = options.maxTimeMS;
|
|
104
|
-
}
|
|
105
|
-
const readConcern = read_concern_1.ReadConcern.fromOptions(options);
|
|
106
|
-
if (readConcern) {
|
|
107
|
-
findCommand.readConcern = readConcern.toJSON();
|
|
108
|
-
}
|
|
109
103
|
if (options.max) {
|
|
110
104
|
findCommand.max = options.max;
|
|
111
105
|
}
|
|
@@ -136,9 +130,6 @@ function makeFindCommand(ns, filter, options) {
|
|
|
136
130
|
if (typeof options.allowPartialResults === 'boolean') {
|
|
137
131
|
findCommand.allowPartialResults = options.allowPartialResults;
|
|
138
132
|
}
|
|
139
|
-
if (options.collation) {
|
|
140
|
-
findCommand.collation = options.collation;
|
|
141
|
-
}
|
|
142
133
|
if (typeof options.allowDiskUse === 'boolean') {
|
|
143
134
|
findCommand.allowDiskUse = options.allowDiskUse;
|
|
144
135
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find.js","sourceRoot":"","sources":["../../src/operations/find.ts"],"names":[],"mappings":";;;AACA,+DAA0F;AAE1F,oCAAqD;
|
|
1
|
+
{"version":3,"file":"find.js","sourceRoot":"","sources":["../../src/operations/find.ts"],"names":[],"mappings":"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"}
|