@qp-mongosh/shell-api 0.0.0-dev.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.
Files changed (95) hide show
  1. package/.eslintignore +3 -0
  2. package/.eslintrc.js +1 -0
  3. package/AUTHORS +15 -0
  4. package/LICENSE +201 -0
  5. package/bin/report-missing-help.ts +24 -0
  6. package/bin/report-supported-api.ts +14 -0
  7. package/lib/abstract-cursor.d.ts +33 -0
  8. package/lib/abstract-cursor.js +192 -0
  9. package/lib/abstract-cursor.js.map +1 -0
  10. package/lib/aggregation-cursor.d.ts +6 -0
  11. package/lib/aggregation-cursor.js +20 -0
  12. package/lib/aggregation-cursor.js.map +1 -0
  13. package/lib/bulk.d.ts +43 -0
  14. package/lib/bulk.js +224 -0
  15. package/lib/bulk.js.map +1 -0
  16. package/lib/change-stream-cursor.d.ts +28 -0
  17. package/lib/change-stream-cursor.js +112 -0
  18. package/lib/change-stream-cursor.js.map +1 -0
  19. package/lib/collection.d.ts +95 -0
  20. package/lib/collection.js +965 -0
  21. package/lib/collection.js.map +1 -0
  22. package/lib/cursor.d.ts +32 -0
  23. package/lib/cursor.js +216 -0
  24. package/lib/cursor.js.map +1 -0
  25. package/lib/database.d.ts +116 -0
  26. package/lib/database.js +1224 -0
  27. package/lib/database.js.map +1 -0
  28. package/lib/dbquery.d.ts +8 -0
  29. package/lib/dbquery.js +29 -0
  30. package/lib/dbquery.js.map +1 -0
  31. package/lib/decorators.d.ts +73 -0
  32. package/lib/decorators.js +396 -0
  33. package/lib/decorators.js.map +1 -0
  34. package/lib/enums.d.ts +28 -0
  35. package/lib/enums.js +34 -0
  36. package/lib/enums.js.map +1 -0
  37. package/lib/error-codes.d.ts +12 -0
  38. package/lib/error-codes.js +20 -0
  39. package/lib/error-codes.js.map +1 -0
  40. package/lib/explainable-cursor.d.ts +11 -0
  41. package/lib/explainable-cursor.js +32 -0
  42. package/lib/explainable-cursor.js.map +1 -0
  43. package/lib/explainable.d.ts +32 -0
  44. package/lib/explainable.js +167 -0
  45. package/lib/explainable.js.map +1 -0
  46. package/lib/field-level-encryption.d.ts +50 -0
  47. package/lib/field-level-encryption.js +177 -0
  48. package/lib/field-level-encryption.js.map +1 -0
  49. package/lib/help.d.ts +22 -0
  50. package/lib/help.js +27 -0
  51. package/lib/help.js.map +1 -0
  52. package/lib/helpers.d.ts +71 -0
  53. package/lib/helpers.js +589 -0
  54. package/lib/helpers.js.map +1 -0
  55. package/lib/index.d.ts +16 -0
  56. package/lib/index.js +46 -0
  57. package/lib/index.js.map +1 -0
  58. package/lib/interruptor.d.ts +19 -0
  59. package/lib/interruptor.js +63 -0
  60. package/lib/interruptor.js.map +1 -0
  61. package/lib/mongo-errors.d.ts +5 -0
  62. package/lib/mongo-errors.js +38 -0
  63. package/lib/mongo-errors.js.map +1 -0
  64. package/lib/mongo.d.ts +75 -0
  65. package/lib/mongo.js +477 -0
  66. package/lib/mongo.js.map +1 -0
  67. package/lib/no-db.d.ts +5 -0
  68. package/lib/no-db.js +29 -0
  69. package/lib/no-db.js.map +1 -0
  70. package/lib/plan-cache.d.ts +16 -0
  71. package/lib/plan-cache.js +71 -0
  72. package/lib/plan-cache.js.map +1 -0
  73. package/lib/replica-set.d.ts +45 -0
  74. package/lib/replica-set.js +315 -0
  75. package/lib/replica-set.js.map +1 -0
  76. package/lib/result.d.ts +61 -0
  77. package/lib/result.js +105 -0
  78. package/lib/result.js.map +1 -0
  79. package/lib/session.d.ts +25 -0
  80. package/lib/session.js +89 -0
  81. package/lib/session.js.map +1 -0
  82. package/lib/shard.d.ts +42 -0
  83. package/lib/shard.js +415 -0
  84. package/lib/shard.js.map +1 -0
  85. package/lib/shell-api.d.ts +52 -0
  86. package/lib/shell-api.js +299 -0
  87. package/lib/shell-api.js.map +1 -0
  88. package/lib/shell-bson.d.ts +40 -0
  89. package/lib/shell-bson.js +160 -0
  90. package/lib/shell-bson.js.map +1 -0
  91. package/lib/shell-instance-state.d.ts +77 -0
  92. package/lib/shell-instance-state.js +393 -0
  93. package/lib/shell-instance-state.js.map +1 -0
  94. package/package.json +47 -0
  95. package/tsconfig.lint.json +8 -0
package/lib/bulk.js ADDED
@@ -0,0 +1,224 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.BulkFindOp = void 0;
10
+ const decorators_1 = require("./decorators");
11
+ const errors_1 = require("@qp-mongosh/errors");
12
+ const enums_1 = require("./enums");
13
+ const helpers_1 = require("./helpers");
14
+ const result_1 = require("./result");
15
+ let BulkFindOp = class BulkFindOp extends decorators_1.ShellApiWithMongoClass {
16
+ constructor(innerFind, parentBulk) {
17
+ super();
18
+ this._serviceProviderBulkFindOp = innerFind;
19
+ this._parentBulk = parentBulk;
20
+ }
21
+ get _mongo() {
22
+ return this._parentBulk._mongo;
23
+ }
24
+ [enums_1.asPrintable]() {
25
+ return 'BulkFindOp';
26
+ }
27
+ collation(spec) {
28
+ this._serviceProviderBulkFindOp.collation(spec);
29
+ return this;
30
+ }
31
+ arrayFilters(filters) {
32
+ this._serviceProviderBulkFindOp.arrayFilters(filters);
33
+ return this;
34
+ }
35
+ hint(hintDoc) {
36
+ (0, helpers_1.assertArgsDefinedType)([hintDoc], [true], 'BulkFindOp.hint');
37
+ this._hint = hintDoc;
38
+ return this;
39
+ }
40
+ delete() {
41
+ this._parentBulk._batchCounts.nRemoveOps++;
42
+ this._serviceProviderBulkFindOp.delete();
43
+ return this._parentBulk;
44
+ }
45
+ deleteOne() {
46
+ this._parentBulk._batchCounts.nRemoveOps++;
47
+ this._serviceProviderBulkFindOp.deleteOne();
48
+ return this._parentBulk;
49
+ }
50
+ remove() {
51
+ return this.delete();
52
+ }
53
+ removeOne() {
54
+ return this.deleteOne();
55
+ }
56
+ replaceOne(replacement) {
57
+ this._parentBulk._batchCounts.nUpdateOps++;
58
+ (0, helpers_1.assertArgsDefinedType)([replacement], [true], 'BulkFindOp.replacement');
59
+ const op = { ...replacement };
60
+ if (this._hint) {
61
+ op.hint = this._hint;
62
+ }
63
+ this._serviceProviderBulkFindOp.replaceOne(op);
64
+ return this._parentBulk;
65
+ }
66
+ updateOne(update) {
67
+ this._parentBulk._batchCounts.nUpdateOps++;
68
+ (0, helpers_1.assertArgsDefinedType)([update], [true], 'BulkFindOp.update');
69
+ const op = { ...update };
70
+ if (this._hint) {
71
+ op.hint = this._hint;
72
+ }
73
+ if (this._arrayFilters) {
74
+ op.arrayFilters = this._arrayFilters;
75
+ }
76
+ this._serviceProviderBulkFindOp.updateOne(op);
77
+ return this._parentBulk;
78
+ }
79
+ update(update) {
80
+ this._parentBulk._batchCounts.nUpdateOps++;
81
+ (0, helpers_1.assertArgsDefinedType)([update], [true], 'BulkFindOp.update');
82
+ const op = { ...update };
83
+ if (this._hint) {
84
+ op.hint = this._hint;
85
+ }
86
+ if (this._arrayFilters) {
87
+ op.arrayFilters = this._arrayFilters;
88
+ }
89
+ this._serviceProviderBulkFindOp.update(op);
90
+ return this._parentBulk;
91
+ }
92
+ upsert() {
93
+ this._serviceProviderBulkFindOp.upsert();
94
+ return this;
95
+ }
96
+ };
97
+ __decorate([
98
+ (0, decorators_1.returnType)('BulkFindOp'),
99
+ (0, decorators_1.apiVersions)([1])
100
+ ], BulkFindOp.prototype, "collation", null);
101
+ __decorate([
102
+ (0, decorators_1.returnType)('BulkFindOp'),
103
+ (0, decorators_1.apiVersions)([1])
104
+ ], BulkFindOp.prototype, "arrayFilters", null);
105
+ __decorate([
106
+ (0, decorators_1.returnType)('BulkFindOp'),
107
+ (0, decorators_1.apiVersions)([1])
108
+ ], BulkFindOp.prototype, "hint", null);
109
+ __decorate([
110
+ (0, decorators_1.returnType)('Bulk'),
111
+ (0, decorators_1.apiVersions)([1])
112
+ ], BulkFindOp.prototype, "delete", null);
113
+ __decorate([
114
+ (0, decorators_1.returnType)('Bulk'),
115
+ (0, decorators_1.apiVersions)([1])
116
+ ], BulkFindOp.prototype, "deleteOne", null);
117
+ __decorate([
118
+ (0, decorators_1.returnType)('Bulk'),
119
+ (0, decorators_1.apiVersions)([1]),
120
+ decorators_1.deprecated
121
+ ], BulkFindOp.prototype, "remove", null);
122
+ __decorate([
123
+ (0, decorators_1.returnType)('Bulk'),
124
+ (0, decorators_1.apiVersions)([1]),
125
+ decorators_1.deprecated
126
+ ], BulkFindOp.prototype, "removeOne", null);
127
+ __decorate([
128
+ (0, decorators_1.returnType)('Bulk'),
129
+ (0, decorators_1.apiVersions)([1])
130
+ ], BulkFindOp.prototype, "replaceOne", null);
131
+ __decorate([
132
+ (0, decorators_1.returnType)('Bulk'),
133
+ (0, decorators_1.apiVersions)([1])
134
+ ], BulkFindOp.prototype, "updateOne", null);
135
+ __decorate([
136
+ (0, decorators_1.returnType)('Bulk')
137
+ ], BulkFindOp.prototype, "update", null);
138
+ __decorate([
139
+ (0, decorators_1.returnType)('Bulk')
140
+ ], BulkFindOp.prototype, "upsert", null);
141
+ BulkFindOp = __decorate([
142
+ decorators_1.shellApiClassDefault
143
+ ], BulkFindOp);
144
+ exports.BulkFindOp = BulkFindOp;
145
+ let Bulk = class Bulk extends decorators_1.ShellApiWithMongoClass {
146
+ constructor(collection, innerBulk, ordered = false) {
147
+ super();
148
+ this._collection = collection;
149
+ this._mongo = collection._mongo;
150
+ this._serviceProviderBulkOp = innerBulk;
151
+ this._batchCounts = {
152
+ nInsertOps: 0,
153
+ nUpdateOps: 0,
154
+ nRemoveOps: 0
155
+ };
156
+ this._executed = false;
157
+ this._ordered = ordered;
158
+ }
159
+ [enums_1.asPrintable]() {
160
+ return this.toJSON();
161
+ }
162
+ _emitBulkApiCall(methodName, methodArguments = {}) {
163
+ this._mongo._instanceState.emitApiCallWithArgs({
164
+ method: methodName,
165
+ class: 'Bulk',
166
+ db: this._collection._database._name,
167
+ coll: this._collection._name,
168
+ arguments: methodArguments
169
+ });
170
+ }
171
+ async execute(writeConcern) {
172
+ const { result } = await this._serviceProviderBulkOp.execute();
173
+ this._executed = true;
174
+ this._emitBulkApiCall('execute', { writeConcern: writeConcern });
175
+ return new result_1.BulkWriteResult(!!result.ok, result.nInserted, result.insertedIds, result.nMatched, result.nModified, result.nRemoved, result.nUpserted, result.upserted);
176
+ }
177
+ find(query) {
178
+ (0, helpers_1.assertArgsDefinedType)([query], [true], 'Bulk.find');
179
+ return new BulkFindOp(this._serviceProviderBulkOp.find(query), this);
180
+ }
181
+ insert(document) {
182
+ this._batchCounts.nInsertOps++;
183
+ (0, helpers_1.assertArgsDefinedType)([document], [true], 'Bulk.insert');
184
+ this._serviceProviderBulkOp.insert(document);
185
+ return this;
186
+ }
187
+ toJSON() {
188
+ const batches = this._serviceProviderBulkOp.batches.length;
189
+ return {
190
+ ...this._batchCounts,
191
+ nBatches: batches
192
+ };
193
+ }
194
+ toString() {
195
+ return JSON.stringify(this.toJSON());
196
+ }
197
+ getOperations() {
198
+ if (!this._executed) {
199
+ throw new errors_1.MongoshInvalidInputError('Cannot call getOperations on an unexecuted Bulk operation', errors_1.CommonErrors.InvalidOperation);
200
+ }
201
+ return this._serviceProviderBulkOp.batches.map((b) => ({
202
+ originalZeroIndex: b.originalZeroIndex,
203
+ batchType: b.batchType,
204
+ operations: b.operations
205
+ }));
206
+ }
207
+ };
208
+ __decorate([
209
+ decorators_1.returnsPromise,
210
+ (0, decorators_1.apiVersions)([1])
211
+ ], Bulk.prototype, "execute", null);
212
+ __decorate([
213
+ (0, decorators_1.returnType)('BulkFindOp'),
214
+ (0, decorators_1.apiVersions)([1])
215
+ ], Bulk.prototype, "find", null);
216
+ __decorate([
217
+ (0, decorators_1.returnType)('Bulk'),
218
+ (0, decorators_1.apiVersions)([1])
219
+ ], Bulk.prototype, "insert", null);
220
+ Bulk = __decorate([
221
+ decorators_1.shellApiClassDefault
222
+ ], Bulk);
223
+ exports.default = Bulk;
224
+ //# sourceMappingURL=bulk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bulk.js","sourceRoot":"","sources":["../src/bulk.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { ShellApiWithMongoClass } from './decorators';
2
+ import { ChangeStream, Document, ResumeToken } from '@qp-mongosh/service-provider-core';
3
+ import { CursorIterationResult } from './result';
4
+ import { asPrintable } from './enums';
5
+ import Mongo from './mongo';
6
+ export default class ChangeStreamCursor extends ShellApiWithMongoClass {
7
+ _mongo: Mongo;
8
+ _cursor: ChangeStream<Document>;
9
+ _currentIterationResult: CursorIterationResult | null;
10
+ _on: string;
11
+ constructor(cursor: ChangeStream<Document>, on: string, mongo: Mongo);
12
+ _it(): Promise<CursorIterationResult>;
13
+ [asPrintable](): string;
14
+ close(): Promise<void>;
15
+ hasNext(): Promise<boolean>;
16
+ tryNext(): Promise<Document | null>;
17
+ [Symbol.asyncIterator](): AsyncGenerator<Document, void, unknown>;
18
+ isClosed(): boolean;
19
+ isExhausted(): never;
20
+ itcount(): Promise<number>;
21
+ next(): Promise<Document>;
22
+ getResumeToken(): ResumeToken;
23
+ map(): ChangeStreamCursor;
24
+ forEach(): Promise<void>;
25
+ toArray(): Promise<Document[]>;
26
+ objsLeftInBatch(): void;
27
+ pretty(): ChangeStreamCursor;
28
+ }
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ const decorators_1 = require("./decorators");
10
+ const result_1 = require("./result");
11
+ const enums_1 = require("./enums");
12
+ const errors_1 = require("@qp-mongosh/errors");
13
+ const helpers_1 = require("./helpers");
14
+ let ChangeStreamCursor = class ChangeStreamCursor extends decorators_1.ShellApiWithMongoClass {
15
+ constructor(cursor, on, mongo) {
16
+ super();
17
+ this._currentIterationResult = null;
18
+ this._cursor = cursor;
19
+ this._on = on;
20
+ this._mongo = mongo;
21
+ }
22
+ async _it() {
23
+ if (this._cursor.closed) {
24
+ throw new errors_1.MongoshRuntimeError('ChangeStreamCursor is closed');
25
+ }
26
+ const result = this._currentIterationResult = new result_1.CursorIterationResult();
27
+ return (0, helpers_1.iterate)(result, this, await this._mongo._displayBatchSize());
28
+ }
29
+ [enums_1.asPrintable]() {
30
+ return `ChangeStreamCursor on ${this._on}`;
31
+ }
32
+ async close() {
33
+ await this._cursor.close();
34
+ }
35
+ async hasNext() {
36
+ await this._instanceState.printWarning('If there are no documents in the batch, hasNext will block. Use tryNext if you want to check if there ' +
37
+ 'are any documents without waiting.');
38
+ return this._cursor.hasNext();
39
+ }
40
+ async tryNext() {
41
+ if (this._cursor.closed) {
42
+ throw new errors_1.MongoshRuntimeError('Cannot call tryNext on closed cursor');
43
+ }
44
+ return this._cursor.tryNext();
45
+ }
46
+ async *[Symbol.asyncIterator]() {
47
+ let doc;
48
+ while ((doc = await this.tryNext()) !== null) {
49
+ yield doc;
50
+ }
51
+ }
52
+ isClosed() {
53
+ return this._cursor.closed;
54
+ }
55
+ isExhausted() {
56
+ throw new errors_1.MongoshInvalidInputError('isExhausted is not implemented for ChangeStreams because after closing a cursor, the remaining documents in the batch are no longer accessible. If you want to see if the cursor is closed use isClosed. If you want to see if there are documents left in the batch, use tryNext.');
57
+ }
58
+ async itcount() {
59
+ let count = 0;
60
+ while (await this.tryNext()) {
61
+ count++;
62
+ }
63
+ return count;
64
+ }
65
+ async next() {
66
+ await this._instanceState.printWarning('If there are no documents in the batch, next will block. Use tryNext if you want to check if there are ' +
67
+ 'any documents without waiting.');
68
+ return this._cursor.next();
69
+ }
70
+ getResumeToken() {
71
+ return this._cursor.resumeToken;
72
+ }
73
+ map() {
74
+ throw new errors_1.MongoshUnimplementedError('Cannot call map on a change stream cursor');
75
+ }
76
+ forEach() {
77
+ throw new errors_1.MongoshUnimplementedError('Cannot call forEach on a change stream cursor');
78
+ }
79
+ toArray() {
80
+ throw new errors_1.MongoshUnimplementedError('Cannot call toArray on a change stream cursor');
81
+ }
82
+ objsLeftInBatch() {
83
+ throw new errors_1.MongoshUnimplementedError('Cannot call objsLeftInBatch on a change stream cursor');
84
+ }
85
+ pretty() {
86
+ return this;
87
+ }
88
+ };
89
+ __decorate([
90
+ decorators_1.returnsPromise
91
+ ], ChangeStreamCursor.prototype, "close", null);
92
+ __decorate([
93
+ decorators_1.returnsPromise,
94
+ decorators_1.deprecated
95
+ ], ChangeStreamCursor.prototype, "hasNext", null);
96
+ __decorate([
97
+ decorators_1.returnsPromise
98
+ ], ChangeStreamCursor.prototype, "tryNext", null);
99
+ __decorate([
100
+ decorators_1.returnsPromise
101
+ ], ChangeStreamCursor.prototype, "itcount", null);
102
+ __decorate([
103
+ decorators_1.returnsPromise
104
+ ], ChangeStreamCursor.prototype, "next", null);
105
+ __decorate([
106
+ (0, decorators_1.returnType)('ChangeStreamCursor')
107
+ ], ChangeStreamCursor.prototype, "pretty", null);
108
+ ChangeStreamCursor = __decorate([
109
+ decorators_1.shellApiClassDefault
110
+ ], ChangeStreamCursor);
111
+ exports.default = ChangeStreamCursor;
112
+ //# sourceMappingURL=change-stream-cursor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"change-stream-cursor.js","sourceRoot":"","sources":["../src/change-stream-cursor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ import Mongo from './mongo';
2
+ import { Namespace, ShellApiWithMongoClass } from './decorators';
3
+ import { asPrintable, namespaceInfo } from './enums';
4
+ import { FindAndModifyShellOptions, FindAndModifyMethodShellOptions, RemoveShellOptions, MapReduceShellOptions } from './helpers';
5
+ import { AnyBulkWriteOperation, BulkWriteOptions, CollStatsOptions, CountOptions, CountDocumentsOptions, ChangeStreamOptions, CreateIndexesOptions, DeleteOptions, DistinctOptions, Document, EstimatedDocumentCountOptions, ExplainVerbosityLike, FindOneAndDeleteOptions, FindOneAndReplaceOptions, FindOneAndUpdateOptions, FindOptions, InsertOneOptions, ReplaceOptions, RunCommandOptions, UpdateOptions } from '@qp-mongosh/service-provider-core';
6
+ import { AggregationCursor, BulkWriteResult, CommandResult, Cursor, Database, DeleteResult, Explainable, InsertManyResult, InsertOneResult, UpdateResult } from './index';
7
+ import Bulk from './bulk';
8
+ import PlanCache from './plan-cache';
9
+ import ChangeStreamCursor from './change-stream-cursor';
10
+ declare type CollStatsShellOptions = CollStatsOptions & {
11
+ indexDetails?: boolean;
12
+ indexDetailsKey?: Document;
13
+ indexDetailsName?: string;
14
+ };
15
+ export default class Collection extends ShellApiWithMongoClass {
16
+ _mongo: Mongo;
17
+ _database: Database;
18
+ _name: string;
19
+ constructor(mongo: Mongo, database: Database, name: string);
20
+ [namespaceInfo](): Namespace;
21
+ [asPrintable](): string;
22
+ private _emitCollectionApiCall;
23
+ aggregate(pipeline: Document[], options: Document & {
24
+ explain?: never;
25
+ }): Promise<AggregationCursor>;
26
+ aggregate(pipeline: Document[], options: Document & {
27
+ explain: ExplainVerbosityLike;
28
+ }): Promise<Document>;
29
+ aggregate(...stages: Document[]): Promise<AggregationCursor>;
30
+ bulkWrite(operations: AnyBulkWriteOperation[], options?: BulkWriteOptions): Promise<BulkWriteResult>;
31
+ count(query?: {}, options?: CountOptions): Promise<number>;
32
+ countDocuments(query?: Document, options?: CountDocumentsOptions): Promise<number>;
33
+ deleteMany(filter: Document, options?: DeleteOptions): Promise<DeleteResult | Document>;
34
+ deleteOne(filter: Document, options?: DeleteOptions): Promise<DeleteResult | Document>;
35
+ distinct(field: string): Promise<Document>;
36
+ distinct(field: string, query: Document): Promise<Document>;
37
+ distinct(field: string, query: Document, options: DistinctOptions): Promise<Document>;
38
+ estimatedDocumentCount(options?: EstimatedDocumentCountOptions): Promise<number>;
39
+ find(query?: Document, projection?: Document, options?: FindOptions): Promise<Cursor>;
40
+ findAndModify(options: FindAndModifyMethodShellOptions): Promise<Document>;
41
+ findOne(query?: Document, projection?: Document, options?: FindOptions): Promise<Document | null>;
42
+ renameCollection(newName: string, dropTarget?: boolean): Promise<Document>;
43
+ findOneAndDelete(filter: Document, options?: FindOneAndDeleteOptions): Promise<Document>;
44
+ findOneAndReplace(filter: Document, replacement: Document, options?: FindAndModifyShellOptions<FindOneAndReplaceOptions>): Promise<Document>;
45
+ findOneAndUpdate(filter: Document, update: Document | Document[], options?: FindAndModifyShellOptions<FindOneAndUpdateOptions>): Promise<Document>;
46
+ insert(docs: Document | Document[], options?: BulkWriteOptions): Promise<InsertManyResult>;
47
+ insertMany(docs: Document[], options?: BulkWriteOptions): Promise<InsertManyResult>;
48
+ insertOne(doc: Document, options?: InsertOneOptions): Promise<InsertOneResult>;
49
+ isCapped(): Promise<boolean>;
50
+ remove(query: Document, options?: boolean | RemoveShellOptions): Promise<DeleteResult | Document>;
51
+ save(): never;
52
+ replaceOne(filter: Document, replacement: Document, options?: ReplaceOptions): Promise<UpdateResult>;
53
+ update(filter: Document, update: Document, options?: UpdateOptions & {
54
+ multi?: boolean;
55
+ }): Promise<UpdateResult | Document>;
56
+ updateMany(filter: Document, update: Document, options?: UpdateOptions): Promise<UpdateResult | Document>;
57
+ updateOne(filter: Document, update: Document, options?: UpdateOptions): Promise<UpdateResult | Document>;
58
+ convertToCapped(size: number): Promise<Document>;
59
+ _createIndexes(keyPatterns: Document[], options?: CreateIndexesOptions, commitQuorum?: number | string): Promise<string[]>;
60
+ createIndexes(keyPatterns: Document[], options?: CreateIndexesOptions, commitQuorum?: number | string): Promise<string[]>;
61
+ createIndex(keys: Document, options?: CreateIndexesOptions, commitQuorum?: number | string): Promise<string>;
62
+ ensureIndex(keys: Document, options?: CreateIndexesOptions, commitQuorum?: number | string): Promise<Document>;
63
+ getIndexes(): Promise<Document[]>;
64
+ getIndexSpecs(): Promise<Document[]>;
65
+ getIndices(): Promise<Document[]>;
66
+ getIndexKeys(): Promise<Document[]>;
67
+ dropIndexes(indexes?: string | string[] | Document | Document[]): Promise<Document>;
68
+ dropIndex(index: string | Document): Promise<Document>;
69
+ totalIndexSize(...args: any[]): Promise<number>;
70
+ reIndex(): Promise<Document>;
71
+ getDB(): Database;
72
+ getMongo(): Mongo;
73
+ dataSize(): Promise<number>;
74
+ storageSize(): Promise<number>;
75
+ totalSize(): Promise<number>;
76
+ drop(): Promise<boolean>;
77
+ exists(): Promise<Document>;
78
+ getFullName(): string;
79
+ getName(): string;
80
+ runCommand(commandName: string | Document, options?: RunCommandOptions): Promise<Document>;
81
+ explain(verbosity?: ExplainVerbosityLike): Explainable;
82
+ stats(originalOptions?: CollStatsShellOptions | number): Promise<Document>;
83
+ latencyStats(options?: Document): Promise<Document[]>;
84
+ initializeOrderedBulkOp(): Promise<Bulk>;
85
+ initializeUnorderedBulkOp(): Promise<Bulk>;
86
+ getPlanCache(): PlanCache;
87
+ mapReduce(map: Function | string, reduce: Function | string, optionsOrOutString: MapReduceShellOptions): Promise<Document>;
88
+ validate(options?: boolean | Document): Promise<Document>;
89
+ getShardVersion(): Promise<Document>;
90
+ getShardDistribution(): Promise<CommandResult>;
91
+ watch(pipeline?: Document[] | ChangeStreamOptions, options?: ChangeStreamOptions): Promise<ChangeStreamCursor>;
92
+ hideIndex(index: string | Document): Promise<Document>;
93
+ unhideIndex(index: string | Document): Promise<Document>;
94
+ }
95
+ export {};