mongodb 6.18.0-dev.20250801.sha.aac76296 → 6.18.0-dev.20250805.sha.ff9a7858
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 +14 -2
- package/lib/collection.js +8 -3
- package/lib/collection.js.map +1 -1
- package/lib/operations/command.js +72 -1
- package/lib/operations/command.js.map +1 -1
- package/lib/operations/drop.js +2 -1
- package/lib/operations/drop.js.map +1 -1
- package/lib/operations/execute_operation.js +15 -2
- package/lib/operations/execute_operation.js.map +1 -1
- package/lib/operations/find.js +9 -7
- package/lib/operations/find.js.map +1 -1
- package/lib/operations/insert.js +18 -3
- package/lib/operations/insert.js.map +1 -1
- package/lib/operations/operation.js +39 -1
- package/lib/operations/operation.js.map +1 -1
- package/lib/operations/search_indexes/drop.js +17 -10
- package/lib/operations/search_indexes/drop.js.map +1 -1
- package/lib/sdam/server.js +85 -0
- package/lib/sdam/server.js.map +1 -1
- package/mongodb.d.ts +14 -2
- package/package.json +1 -1
- package/src/collection.ts +12 -7
- package/src/index.ts +7 -2
- package/src/operations/command.ts +94 -2
- package/src/operations/drop.ts +2 -1
- package/src/operations/execute_operation.ts +20 -3
- package/src/operations/find.ts +18 -10
- package/src/operations/insert.ts +22 -9
- package/src/operations/operation.ts +60 -1
- package/src/operations/search_indexes/drop.ts +25 -16
- package/src/sdam/server.ts +95 -0
package/lib/sdam/server.js
CHANGED
|
@@ -130,6 +130,91 @@ class Server extends mongo_types_1.TypedEventEmitter {
|
|
|
130
130
|
this.monitor?.requestCheck();
|
|
131
131
|
}
|
|
132
132
|
}
|
|
133
|
+
async modernCommand(operation, timeoutContext) {
|
|
134
|
+
if (this.s.state === common_1.STATE_CLOSING || this.s.state === common_1.STATE_CLOSED) {
|
|
135
|
+
throw new error_1.MongoServerClosedError();
|
|
136
|
+
}
|
|
137
|
+
const session = operation.session;
|
|
138
|
+
let conn = session?.pinnedConnection;
|
|
139
|
+
this.incrementOperationCount();
|
|
140
|
+
if (conn == null) {
|
|
141
|
+
try {
|
|
142
|
+
conn = await this.pool.checkOut({ timeoutContext });
|
|
143
|
+
}
|
|
144
|
+
catch (checkoutError) {
|
|
145
|
+
this.decrementOperationCount();
|
|
146
|
+
if (!(checkoutError instanceof errors_1.PoolClearedError))
|
|
147
|
+
this.handleError(checkoutError);
|
|
148
|
+
throw checkoutError;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
const cmd = operation.buildCommand(conn, session);
|
|
152
|
+
const options = operation.buildOptions(timeoutContext);
|
|
153
|
+
const ns = operation.ns;
|
|
154
|
+
if (this.loadBalanced && isPinnableCommand(cmd, session) && !session?.pinnedConnection) {
|
|
155
|
+
session?.pin(conn);
|
|
156
|
+
}
|
|
157
|
+
options.directConnection = this.topology.s.options.directConnection;
|
|
158
|
+
// There are cases where we need to flag the read preference not to get sent in
|
|
159
|
+
// the command, such as pre-5.0 servers attempting to perform an aggregate write
|
|
160
|
+
// with a non-primary read preference. In this case the effective read preference
|
|
161
|
+
// (primary) is not the same as the provided and must be removed completely.
|
|
162
|
+
if (options.omitReadPreference) {
|
|
163
|
+
delete options.readPreference;
|
|
164
|
+
}
|
|
165
|
+
if (this.description.iscryptd) {
|
|
166
|
+
options.omitMaxTimeMS = true;
|
|
167
|
+
}
|
|
168
|
+
let reauthPromise = null;
|
|
169
|
+
try {
|
|
170
|
+
try {
|
|
171
|
+
const res = await conn.command(ns, cmd, options, operation.SERVER_COMMAND_RESPONSE_TYPE);
|
|
172
|
+
(0, write_concern_1.throwIfWriteConcernError)(res);
|
|
173
|
+
return res;
|
|
174
|
+
}
|
|
175
|
+
catch (commandError) {
|
|
176
|
+
throw this.decorateCommandError(conn, cmd, options, commandError);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
catch (operationError) {
|
|
180
|
+
if (operationError instanceof error_1.MongoError &&
|
|
181
|
+
operationError.code === error_1.MONGODB_ERROR_CODES.Reauthenticate) {
|
|
182
|
+
reauthPromise = this.pool.reauthenticate(conn);
|
|
183
|
+
reauthPromise.then(undefined, error => {
|
|
184
|
+
reauthPromise = null;
|
|
185
|
+
(0, utils_1.squashError)(error);
|
|
186
|
+
});
|
|
187
|
+
await (0, utils_1.abortable)(reauthPromise, options);
|
|
188
|
+
reauthPromise = null; // only reachable if reauth succeeds
|
|
189
|
+
try {
|
|
190
|
+
const res = await conn.command(ns, cmd, options, operation.SERVER_COMMAND_RESPONSE_TYPE);
|
|
191
|
+
(0, write_concern_1.throwIfWriteConcernError)(res);
|
|
192
|
+
return res;
|
|
193
|
+
}
|
|
194
|
+
catch (commandError) {
|
|
195
|
+
throw this.decorateCommandError(conn, cmd, options, commandError);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
throw operationError;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
finally {
|
|
203
|
+
this.decrementOperationCount();
|
|
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
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
133
218
|
async command(ns, cmd, { ...options }, responseType) {
|
|
134
219
|
if (ns.db == null || typeof ns === 'string') {
|
|
135
220
|
throw new error_1.MongoInvalidArgumentError('Namespace must not be a string');
|
package/lib/sdam/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/sdam/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/sdam/server.ts"],"names":[],"mappings":"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"}
|
package/mongodb.d.ts
CHANGED
|
@@ -2830,10 +2830,10 @@ export declare class Collection<TSchema extends Document = Document> {
|
|
|
2830
2830
|
*/
|
|
2831
2831
|
findOne(): Promise<WithId<TSchema> | null>;
|
|
2832
2832
|
findOne(filter: Filter<TSchema>): Promise<WithId<TSchema> | null>;
|
|
2833
|
-
findOne(filter: Filter<TSchema>, options: Omit<
|
|
2833
|
+
findOne(filter: Filter<TSchema>, options: Omit<FindOneOptions, 'timeoutMode'> & Abortable): Promise<WithId<TSchema> | null>;
|
|
2834
2834
|
findOne<T = TSchema>(): Promise<T | null>;
|
|
2835
2835
|
findOne<T = TSchema>(filter: Filter<TSchema>): Promise<T | null>;
|
|
2836
|
-
findOne<T = TSchema>(filter: Filter<TSchema>, options?: Omit<
|
|
2836
|
+
findOne<T = TSchema>(filter: Filter<TSchema>, options?: Omit<FindOneOptions, 'timeoutMode'> & Abortable): Promise<T | null>;
|
|
2837
2837
|
/**
|
|
2838
2838
|
* Creates a cursor for a filter that can be used to iterate over results from MongoDB
|
|
2839
2839
|
*
|
|
@@ -4708,6 +4708,16 @@ export declare interface FindOneAndUpdateOptions extends CommandOperationOptions
|
|
|
4708
4708
|
includeResultMetadata?: boolean;
|
|
4709
4709
|
}
|
|
4710
4710
|
|
|
4711
|
+
/** @public */
|
|
4712
|
+
export declare interface FindOneOptions extends FindOptions {
|
|
4713
|
+
/** @deprecated Will be removed in the next major version. User provided value will be ignored. */
|
|
4714
|
+
batchSize?: number;
|
|
4715
|
+
/** @deprecated Will be removed in the next major version. User provided value will be ignored. */
|
|
4716
|
+
limit?: number;
|
|
4717
|
+
/** @deprecated Will be removed in the next major version. User provided value will be ignored. */
|
|
4718
|
+
noCursorTimeout?: boolean;
|
|
4719
|
+
}
|
|
4720
|
+
|
|
4711
4721
|
/**
|
|
4712
4722
|
* A builder object that is returned from {@link BulkOperationBase#find}.
|
|
4713
4723
|
* Is used to build a write operation that involves a query filter.
|
|
@@ -5535,6 +5545,8 @@ export { MaxKey }
|
|
|
5535
5545
|
/* Excluded from this release type: MessageHeader */
|
|
5536
5546
|
export { MinKey }
|
|
5537
5547
|
|
|
5548
|
+
/* Excluded from this release type: ModernizedOperation */
|
|
5549
|
+
|
|
5538
5550
|
/** @public */
|
|
5539
5551
|
export declare interface ModifyResult<TSchema = Document> {
|
|
5540
5552
|
value: WithId<TSchema> | null;
|
package/package.json
CHANGED
package/src/collection.ts
CHANGED
|
@@ -43,7 +43,7 @@ import {
|
|
|
43
43
|
type EstimatedDocumentCountOptions
|
|
44
44
|
} from './operations/estimated_document_count';
|
|
45
45
|
import { autoConnect, executeOperation } from './operations/execute_operation';
|
|
46
|
-
import type
|
|
46
|
+
import { type FindOneOptions, type FindOptions } from './operations/find';
|
|
47
47
|
import {
|
|
48
48
|
FindOneAndDeleteOperation,
|
|
49
49
|
type FindOneAndDeleteOptions,
|
|
@@ -536,7 +536,7 @@ export class Collection<TSchema extends Document = Document> {
|
|
|
536
536
|
async findOne(filter: Filter<TSchema>): Promise<WithId<TSchema> | null>;
|
|
537
537
|
async findOne(
|
|
538
538
|
filter: Filter<TSchema>,
|
|
539
|
-
options: Omit<
|
|
539
|
+
options: Omit<FindOneOptions, 'timeoutMode'> & Abortable
|
|
540
540
|
): Promise<WithId<TSchema> | null>;
|
|
541
541
|
|
|
542
542
|
// allow an override of the schema.
|
|
@@ -544,17 +544,22 @@ export class Collection<TSchema extends Document = Document> {
|
|
|
544
544
|
async findOne<T = TSchema>(filter: Filter<TSchema>): Promise<T | null>;
|
|
545
545
|
async findOne<T = TSchema>(
|
|
546
546
|
filter: Filter<TSchema>,
|
|
547
|
-
options?: Omit<
|
|
547
|
+
options?: Omit<FindOneOptions, 'timeoutMode'> & Abortable
|
|
548
548
|
): Promise<T | null>;
|
|
549
549
|
|
|
550
550
|
async findOne(
|
|
551
551
|
filter: Filter<TSchema> = {},
|
|
552
|
-
options:
|
|
552
|
+
options: Omit<FindOneOptions, 'timeoutMode'> & Abortable = {}
|
|
553
553
|
): Promise<WithId<TSchema> | null> {
|
|
554
|
-
|
|
555
|
-
|
|
554
|
+
// Explicitly set the limit to 1 and singleBatch to true for all commands, per the spec.
|
|
555
|
+
// noCursorTimeout must be unset as well as batchSize.
|
|
556
|
+
// See: https://github.com/mongodb/specifications/blob/master/source/crud/crud.md#findone-api-details
|
|
557
|
+
const { batchSize: _batchSize, noCursorTimeout: _noCursorTimeout, ...opts } = options;
|
|
558
|
+
opts.singleBatch = true;
|
|
559
|
+
const cursor = this.find(filter, opts).limit(1);
|
|
560
|
+
const result = await cursor.next();
|
|
556
561
|
await cursor.close();
|
|
557
|
-
return
|
|
562
|
+
return result;
|
|
558
563
|
}
|
|
559
564
|
|
|
560
565
|
/**
|
package/src/index.ts
CHANGED
|
@@ -523,7 +523,7 @@ export type { DeleteOptions, DeleteResult, DeleteStatement } from './operations/
|
|
|
523
523
|
export type { DistinctOptions } from './operations/distinct';
|
|
524
524
|
export type { DropCollectionOptions, DropDatabaseOptions } from './operations/drop';
|
|
525
525
|
export type { EstimatedDocumentCountOptions } from './operations/estimated_document_count';
|
|
526
|
-
export type { FindOptions } from './operations/find';
|
|
526
|
+
export type { FindOneOptions, FindOptions } from './operations/find';
|
|
527
527
|
export type {
|
|
528
528
|
FindOneAndDeleteOptions,
|
|
529
529
|
FindOneAndReplaceOptions,
|
|
@@ -543,7 +543,12 @@ export type {
|
|
|
543
543
|
export type { InsertManyResult, InsertOneOptions, InsertOneResult } from './operations/insert';
|
|
544
544
|
export type { CollectionInfo, ListCollectionsOptions } from './operations/list_collections';
|
|
545
545
|
export type { ListDatabasesOptions, ListDatabasesResult } from './operations/list_databases';
|
|
546
|
-
export type {
|
|
546
|
+
export type {
|
|
547
|
+
AbstractOperation,
|
|
548
|
+
Hint,
|
|
549
|
+
ModernizedOperation,
|
|
550
|
+
OperationOptions
|
|
551
|
+
} from './operations/operation';
|
|
547
552
|
export type { ProfilingLevelOptions } from './operations/profiling_level';
|
|
548
553
|
export type { RemoveUserOptions } from './operations/remove_user';
|
|
549
554
|
export type { RenameOptions } from './operations/rename';
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type Connection } from '..';
|
|
1
2
|
import type { BSONSerializeOptions, Document } from '../bson';
|
|
2
3
|
import { type MongoDBResponseConstructor } from '../cmap/wire_protocol/responses';
|
|
3
4
|
import { MongoInvalidArgumentError } from '../error';
|
|
@@ -9,14 +10,14 @@ import {
|
|
|
9
10
|
} from '../explain';
|
|
10
11
|
import { ReadConcern } from '../read_concern';
|
|
11
12
|
import type { ReadPreference } from '../read_preference';
|
|
12
|
-
import type { Server } from '../sdam/server';
|
|
13
|
+
import type { Server, ServerCommandOptions } from '../sdam/server';
|
|
13
14
|
import { MIN_SECONDARY_WRITE_WIRE_VERSION } from '../sdam/server_selection';
|
|
14
15
|
import type { ClientSession } from '../sessions';
|
|
15
16
|
import { type TimeoutContext } from '../timeout';
|
|
16
17
|
import { commandSupportsReadConcern, maxWireVersion, MongoDBNamespace } from '../utils';
|
|
17
18
|
import { WriteConcern, type WriteConcernOptions } from '../write_concern';
|
|
18
19
|
import type { ReadConcernLike } from './../read_concern';
|
|
19
|
-
import { AbstractOperation, Aspect, type OperationOptions } from './operation';
|
|
20
|
+
import { AbstractOperation, Aspect, ModernizedOperation, type OperationOptions } from './operation';
|
|
20
21
|
|
|
21
22
|
/** @public */
|
|
22
23
|
export interface CollationOptions {
|
|
@@ -183,3 +184,94 @@ export abstract class CommandOperation<T> extends AbstractOperation<T> {
|
|
|
183
184
|
return await server.command(this.ns, cmd, options, responseType);
|
|
184
185
|
}
|
|
185
186
|
}
|
|
187
|
+
|
|
188
|
+
/** @internal */
|
|
189
|
+
export abstract class ModernizedCommandOperation<T> extends ModernizedOperation<T> {
|
|
190
|
+
override options: CommandOperationOptions;
|
|
191
|
+
readConcern?: ReadConcern;
|
|
192
|
+
writeConcern?: WriteConcern;
|
|
193
|
+
explain?: Explain;
|
|
194
|
+
|
|
195
|
+
constructor(parent?: OperationParent, options?: CommandOperationOptions) {
|
|
196
|
+
super(options);
|
|
197
|
+
this.options = options ?? {};
|
|
198
|
+
|
|
199
|
+
// NOTE: this was explicitly added for the add/remove user operations, it's likely
|
|
200
|
+
// something we'd want to reconsider. Perhaps those commands can use `Admin`
|
|
201
|
+
// as a parent?
|
|
202
|
+
const dbNameOverride = options?.dbName || options?.authdb;
|
|
203
|
+
if (dbNameOverride) {
|
|
204
|
+
this.ns = new MongoDBNamespace(dbNameOverride, '$cmd');
|
|
205
|
+
} else {
|
|
206
|
+
this.ns = parent
|
|
207
|
+
? parent.s.namespace.withCollection('$cmd')
|
|
208
|
+
: new MongoDBNamespace('admin', '$cmd');
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
this.readConcern = ReadConcern.fromOptions(options);
|
|
212
|
+
this.writeConcern = WriteConcern.fromOptions(options);
|
|
213
|
+
|
|
214
|
+
if (this.hasAspect(Aspect.EXPLAINABLE)) {
|
|
215
|
+
this.explain = Explain.fromOptions(options);
|
|
216
|
+
if (this.explain) validateExplainTimeoutOptions(this.options, this.explain);
|
|
217
|
+
} else if (options?.explain != null) {
|
|
218
|
+
throw new MongoInvalidArgumentError(`Option "explain" is not supported on this command`);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
override get canRetryWrite(): boolean {
|
|
223
|
+
if (this.hasAspect(Aspect.EXPLAINABLE)) {
|
|
224
|
+
return this.explain == null;
|
|
225
|
+
}
|
|
226
|
+
return super.canRetryWrite;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
abstract buildCommandDocument(connection: Connection, session?: ClientSession): Document;
|
|
230
|
+
|
|
231
|
+
override buildOptions(timeoutContext: TimeoutContext): ServerCommandOptions {
|
|
232
|
+
return {
|
|
233
|
+
...this.options,
|
|
234
|
+
...this.bsonOptions,
|
|
235
|
+
timeoutContext,
|
|
236
|
+
readPreference: this.readPreference,
|
|
237
|
+
session: this.session
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
override buildCommand(connection: Connection, session?: ClientSession): Document {
|
|
242
|
+
const command = this.buildCommandDocument(connection, session);
|
|
243
|
+
|
|
244
|
+
const serverWireVersion = maxWireVersion(connection);
|
|
245
|
+
const inTransaction = this.session && this.session.inTransaction();
|
|
246
|
+
|
|
247
|
+
if (this.readConcern && commandSupportsReadConcern(command) && !inTransaction) {
|
|
248
|
+
Object.assign(command, { readConcern: this.readConcern });
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
if (this.trySecondaryWrite && serverWireVersion < MIN_SECONDARY_WRITE_WIRE_VERSION) {
|
|
252
|
+
command.omitReadPreference = true;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
if (this.writeConcern && this.hasAspect(Aspect.WRITE_OPERATION) && !inTransaction) {
|
|
256
|
+
WriteConcern.apply(command, this.writeConcern);
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
if (
|
|
260
|
+
this.options.collation &&
|
|
261
|
+
typeof this.options.collation === 'object' &&
|
|
262
|
+
!this.hasAspect(Aspect.SKIP_COLLATION)
|
|
263
|
+
) {
|
|
264
|
+
Object.assign(command, { collation: this.options.collation });
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
if (typeof this.options.maxTimeMS === 'number') {
|
|
268
|
+
command.maxTimeMS = this.options.maxTimeMS;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
if (this.hasAspect(Aspect.EXPLAINABLE) && this.explain) {
|
|
272
|
+
return decorateWithExplain(command, this.explain);
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
return command;
|
|
276
|
+
}
|
|
277
|
+
}
|
package/src/operations/drop.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { MongoServerError } from '..';
|
|
1
2
|
import type { Document } from '../bson';
|
|
2
3
|
import { CursorTimeoutContext } from '../cursor/abstract_cursor';
|
|
3
4
|
import type { Db } from '../db';
|
|
4
|
-
import { MONGODB_ERROR_CODES
|
|
5
|
+
import { MONGODB_ERROR_CODES } from '../error';
|
|
5
6
|
import type { Server } from '../sdam/server';
|
|
6
7
|
import type { ClientSession } from '../sessions';
|
|
7
8
|
import { TimeoutContext } from '../timeout';
|
|
@@ -26,7 +26,7 @@ import type { Topology } from '../sdam/topology';
|
|
|
26
26
|
import type { ClientSession } from '../sessions';
|
|
27
27
|
import { TimeoutContext } from '../timeout';
|
|
28
28
|
import { abortable, supportsRetryableWrites } from '../utils';
|
|
29
|
-
import { AbstractOperation, Aspect } from './operation';
|
|
29
|
+
import { AbstractOperation, Aspect, ModernizedOperation } from './operation';
|
|
30
30
|
|
|
31
31
|
const MMAPv1_RETRY_WRITES_ERROR_CODE = MONGODB_ERROR_CODES.IllegalOperation;
|
|
32
32
|
const MMAPv1_RETRY_WRITES_ERROR_MESSAGE =
|
|
@@ -85,6 +85,8 @@ export async function executeOperation<
|
|
|
85
85
|
throw new MongoInvalidArgumentError('ClientSession must be from the same MongoClient');
|
|
86
86
|
}
|
|
87
87
|
|
|
88
|
+
operation.session ??= session;
|
|
89
|
+
|
|
88
90
|
const readPreference = operation.readPreference ?? ReadPreference.primary;
|
|
89
91
|
const inTransaction = !!session?.inTransaction();
|
|
90
92
|
|
|
@@ -231,6 +233,8 @@ async function tryOperation<
|
|
|
231
233
|
let previousOperationError: MongoError | undefined;
|
|
232
234
|
let previousServer: ServerDescription | undefined;
|
|
233
235
|
|
|
236
|
+
const isModernOperation = operation instanceof ModernizedOperation;
|
|
237
|
+
|
|
234
238
|
for (let tries = 0; tries < maxTries; tries++) {
|
|
235
239
|
if (previousOperationError) {
|
|
236
240
|
if (hasWriteAspect && previousOperationError.code === MMAPv1_RETRY_WRITES_ERROR_CODE) {
|
|
@@ -248,8 +252,9 @@ async function tryOperation<
|
|
|
248
252
|
if (hasWriteAspect && !isRetryableWriteError(previousOperationError))
|
|
249
253
|
throw previousOperationError;
|
|
250
254
|
|
|
251
|
-
if (hasReadAspect && !isRetryableReadError(previousOperationError))
|
|
255
|
+
if (hasReadAspect && !isRetryableReadError(previousOperationError)) {
|
|
252
256
|
throw previousOperationError;
|
|
257
|
+
}
|
|
253
258
|
|
|
254
259
|
if (
|
|
255
260
|
previousOperationError instanceof MongoNetworkError &&
|
|
@@ -275,12 +280,24 @@ async function tryOperation<
|
|
|
275
280
|
}
|
|
276
281
|
}
|
|
277
282
|
|
|
283
|
+
operation.server = server;
|
|
284
|
+
|
|
278
285
|
try {
|
|
279
286
|
// If tries > 0 and we are command batching we need to reset the batch.
|
|
280
287
|
if (tries > 0 && operation.hasAspect(Aspect.COMMAND_BATCHING)) {
|
|
281
288
|
operation.resetBatch();
|
|
282
289
|
}
|
|
283
|
-
|
|
290
|
+
|
|
291
|
+
if (!isModernOperation) {
|
|
292
|
+
return await operation.execute(server, session, timeoutContext);
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
try {
|
|
296
|
+
const result = await server.modernCommand(operation, timeoutContext);
|
|
297
|
+
return operation.handleOk(result);
|
|
298
|
+
} catch (error) {
|
|
299
|
+
return operation.handleError(error);
|
|
300
|
+
}
|
|
284
301
|
} catch (operationError) {
|
|
285
302
|
if (!(operationError instanceof MongoError)) throw operationError;
|
|
286
303
|
if (
|
package/src/operations/find.ts
CHANGED
|
@@ -81,6 +81,16 @@ export interface FindOptions<TSchema extends Document = Document>
|
|
|
81
81
|
timeoutMode?: CursorTimeoutMode;
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
+
/** @public */
|
|
85
|
+
export interface FindOneOptions extends FindOptions {
|
|
86
|
+
/** @deprecated Will be removed in the next major version. User provided value will be ignored. */
|
|
87
|
+
batchSize?: number;
|
|
88
|
+
/** @deprecated Will be removed in the next major version. User provided value will be ignored. */
|
|
89
|
+
limit?: number;
|
|
90
|
+
/** @deprecated Will be removed in the next major version. User provided value will be ignored. */
|
|
91
|
+
noCursorTimeout?: boolean;
|
|
92
|
+
}
|
|
93
|
+
|
|
84
94
|
/** @internal */
|
|
85
95
|
export class FindOperation extends CommandOperation<CursorResponse> {
|
|
86
96
|
/**
|
|
@@ -185,17 +195,15 @@ function makeFindCommand(ns: MongoDBNamespace, filter: Document, options: FindOp
|
|
|
185
195
|
|
|
186
196
|
if (typeof options.batchSize === 'number') {
|
|
187
197
|
if (options.batchSize < 0) {
|
|
188
|
-
|
|
189
|
-
options.limit &&
|
|
190
|
-
options.limit !== 0 &&
|
|
191
|
-
Math.abs(options.batchSize) < Math.abs(options.limit)
|
|
192
|
-
) {
|
|
193
|
-
findCommand.limit = -options.batchSize;
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
findCommand.singleBatch = true;
|
|
198
|
+
findCommand.limit = -options.batchSize;
|
|
197
199
|
} else {
|
|
198
|
-
|
|
200
|
+
if (options.batchSize === options.limit) {
|
|
201
|
+
// Spec dictates that if these are equal the batchSize should be one more than the
|
|
202
|
+
// limit to avoid leaving the cursor open.
|
|
203
|
+
findCommand.batchSize = options.batchSize + 1;
|
|
204
|
+
} else {
|
|
205
|
+
findCommand.batchSize = options.batchSize;
|
|
206
|
+
}
|
|
199
207
|
}
|
|
200
208
|
}
|
|
201
209
|
|
package/src/operations/insert.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { type Connection } from '..';
|
|
1
2
|
import type { Document } from '../bson';
|
|
2
3
|
import type { BulkWriteOptions } from '../bulk/common';
|
|
4
|
+
import { MongoDBResponse } from '../cmap/wire_protocol/responses';
|
|
3
5
|
import type { Collection } from '../collection';
|
|
4
6
|
import { MongoServerError } from '../error';
|
|
5
7
|
import type { InferIdType } from '../mongo_types';
|
|
@@ -7,12 +9,13 @@ import type { Server } from '../sdam/server';
|
|
|
7
9
|
import type { ClientSession } from '../sessions';
|
|
8
10
|
import { type TimeoutContext } from '../timeout';
|
|
9
11
|
import { maybeAddIdToDocuments, type MongoDBNamespace } from '../utils';
|
|
10
|
-
import {
|
|
12
|
+
import { type CommandOperationOptions, ModernizedCommandOperation } from './command';
|
|
11
13
|
import { Aspect, defineAspects } from './operation';
|
|
12
|
-
|
|
13
14
|
/** @internal */
|
|
14
|
-
export class InsertOperation extends
|
|
15
|
+
export class InsertOperation extends ModernizedCommandOperation<Document> {
|
|
16
|
+
override SERVER_COMMAND_RESPONSE_TYPE = MongoDBResponse;
|
|
15
17
|
override options: BulkWriteOptions;
|
|
18
|
+
|
|
16
19
|
documents: Document[];
|
|
17
20
|
|
|
18
21
|
constructor(ns: MongoDBNamespace, documents: Document[], options: BulkWriteOptions) {
|
|
@@ -26,11 +29,7 @@ export class InsertOperation extends CommandOperation<Document> {
|
|
|
26
29
|
return 'insert' as const;
|
|
27
30
|
}
|
|
28
31
|
|
|
29
|
-
override
|
|
30
|
-
server: Server,
|
|
31
|
-
session: ClientSession | undefined,
|
|
32
|
-
timeoutContext: TimeoutContext
|
|
33
|
-
): Promise<Document> {
|
|
32
|
+
override buildCommandDocument(_connection: Connection, _session?: ClientSession): Document {
|
|
34
33
|
const options = this.options ?? {};
|
|
35
34
|
const ordered = typeof options.ordered === 'boolean' ? options.ordered : true;
|
|
36
35
|
const command: Document = {
|
|
@@ -49,7 +48,7 @@ export class InsertOperation extends CommandOperation<Document> {
|
|
|
49
48
|
command.comment = options.comment;
|
|
50
49
|
}
|
|
51
50
|
|
|
52
|
-
return
|
|
51
|
+
return command;
|
|
53
52
|
}
|
|
54
53
|
}
|
|
55
54
|
|
|
@@ -91,6 +90,20 @@ export class InsertOneOperation extends InsertOperation {
|
|
|
91
90
|
insertedId: this.documents[0]._id
|
|
92
91
|
};
|
|
93
92
|
}
|
|
93
|
+
|
|
94
|
+
override handleOk(response: InstanceType<typeof this.SERVER_COMMAND_RESPONSE_TYPE>): Document {
|
|
95
|
+
const res = super.handleOk(response);
|
|
96
|
+
if (res.code) throw new MongoServerError(res);
|
|
97
|
+
if (res.writeErrors) {
|
|
98
|
+
// This should be a WriteError but we can't change it now because of error hierarchy
|
|
99
|
+
throw new MongoServerError(res.writeErrors[0]);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
return {
|
|
103
|
+
acknowledged: this.writeConcern?.w !== 0,
|
|
104
|
+
insertedId: this.documents[0]._id
|
|
105
|
+
};
|
|
106
|
+
}
|
|
94
107
|
}
|
|
95
108
|
|
|
96
109
|
/** @public */
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { type Connection, type MongoError } from '..';
|
|
1
2
|
import { type BSONSerializeOptions, type Document, resolveBSONOptions } from '../bson';
|
|
3
|
+
import { type MongoDBResponse } from '../cmap/wire_protocol/responses';
|
|
2
4
|
import { type Abortable } from '../mongo_types';
|
|
3
5
|
import { ReadPreference, type ReadPreferenceLike } from '../read_preference';
|
|
4
|
-
import type { Server } from '../sdam/server';
|
|
6
|
+
import type { Server, ServerCommandOptions } from '../sdam/server';
|
|
5
7
|
import type { ClientSession } from '../sessions';
|
|
6
8
|
import { type TimeoutContext } from '../timeout';
|
|
7
9
|
import type { MongoDBNamespace } from '../utils';
|
|
@@ -108,6 +110,10 @@ export abstract class AbstractOperation<TResult = any> {
|
|
|
108
110
|
return this._session;
|
|
109
111
|
}
|
|
110
112
|
|
|
113
|
+
set session(session: ClientSession) {
|
|
114
|
+
this._session = session;
|
|
115
|
+
}
|
|
116
|
+
|
|
111
117
|
clearSession() {
|
|
112
118
|
this._session = undefined;
|
|
113
119
|
}
|
|
@@ -125,6 +131,59 @@ export abstract class AbstractOperation<TResult = any> {
|
|
|
125
131
|
}
|
|
126
132
|
}
|
|
127
133
|
|
|
134
|
+
/** @internal */
|
|
135
|
+
export abstract class ModernizedOperation<TResult> extends AbstractOperation<TResult> {
|
|
136
|
+
abstract SERVER_COMMAND_RESPONSE_TYPE: typeof MongoDBResponse;
|
|
137
|
+
|
|
138
|
+
/** this will never be used - but we must implement it to satisfy AbstractOperation's interface */
|
|
139
|
+
override execute(
|
|
140
|
+
_server: Server,
|
|
141
|
+
_session: ClientSession | undefined,
|
|
142
|
+
_timeoutContext: TimeoutContext
|
|
143
|
+
): Promise<TResult> {
|
|
144
|
+
throw new Error('cannot execute!!');
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* Build a raw command document.
|
|
149
|
+
*/
|
|
150
|
+
abstract buildCommand(connection: Connection, session?: ClientSession): Document;
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* Builds an instance of `ServerCommandOptions` to be used for operation execution.
|
|
154
|
+
*/
|
|
155
|
+
abstract buildOptions(timeoutContext: TimeoutContext): ServerCommandOptions;
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* Given an instance of a MongoDBResponse, map the response to the correct result type. For
|
|
159
|
+
* example, a `CountOperation` might map the response as follows:
|
|
160
|
+
*
|
|
161
|
+
* ```typescript
|
|
162
|
+
* override handleOk(response: InstanceType<typeof this.SERVER_COMMAND_RESPONSE_TYPE>): TResult {
|
|
163
|
+
* return response.toObject(this.bsonOptions).n ?? 0;
|
|
164
|
+
* }
|
|
165
|
+
*
|
|
166
|
+
* // or, with type safety:
|
|
167
|
+
* override handleOk(response: InstanceType<typeof this.SERVER_COMMAND_RESPONSE_TYPE>): TResult {
|
|
168
|
+
* return response.getNumber('n') ?? 0;
|
|
169
|
+
* }
|
|
170
|
+
* ```
|
|
171
|
+
*/
|
|
172
|
+
handleOk(response: InstanceType<typeof this.SERVER_COMMAND_RESPONSE_TYPE>): TResult {
|
|
173
|
+
return response.toObject(this.bsonOptions) as TResult;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* Optional.
|
|
178
|
+
*
|
|
179
|
+
* If the operation performs error handling, such as wrapping, renaming the error, or squashing errors
|
|
180
|
+
* this method can be overridden.
|
|
181
|
+
*/
|
|
182
|
+
handleError(error: MongoError): TResult | never {
|
|
183
|
+
throw error;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
|
|
128
187
|
export function defineAspects(
|
|
129
188
|
operation: { aspects?: Set<symbol> },
|
|
130
189
|
aspects: symbol | symbol[] | Set<symbol>
|