Interface GenericUpdateOneOptions

Overview

The options for a generic updateOne command performed on the Data API.

Example

const result = await collection.updateOne(
{ name: 'John' },
{ $set: { dob: new Date('1990-01-01'), updatedAt: { $currentDate: true } } },
{ upsert: true, sort: { $vector: [...] } },
);

See

  • CollectionUpdateOneOptions
  • TableUpdateOneOptions
interface GenericUpdateOneOptions {
    maxTimeMS?: "ERROR: The `maxTimeMS` option is no longer available; the timeouts system has been overhauled, and timeouts should now be set using `timeout`";
    sort?: Sort;
    timeout?: number | Pick<Partial<TimeoutDescriptor>, "requestTimeoutMs" | "generalMethodTimeoutMs">;
    upsert?: boolean;
    vector?: "ERROR: Use `sort: { $vector: [...] }` instead";
    vectorize?: "ERROR: Use `sort: { $vectorize: \"...\" }` instead";
}

Hierarchy (view full)

Properties

maxTimeMS?: "ERROR: The `maxTimeMS` option is no longer available; the timeouts system has been overhauled, and timeouts should now be set using `timeout`"

This temporary error-ing property exists for migration convenience, and will be removed in a future version.

Deprecated

  • The maxTimeMS option is no longer available; the timeouts system has been overhauled, and timeouts should now be set using timeout, and defaults in timeoutDefaults. You may generally Ctrl+R replace maxTimeMS with timeout to retain the same behavior.
sort?: Sort

The order in which to apply the update if the filter selects multiple documents.

If multiple documents match the filter, only one will be updated.

Defaults to null, where the order is not guaranteed.

Default Value

null
timeout?: number | Pick<Partial<TimeoutDescriptor>, "requestTimeoutMs" | "generalMethodTimeoutMs">
Overview

Lets you specify timeouts for individual methods, in two different formats:

  • A subtype of TimeoutDescriptor, which lets you specify the timeout for specific categories.
  • A number, which specifies the "happy path" timeout for the method.
    • In single-call methods, this sets both the request & overall method timeouts.
    • In multi-call methods, this sets the overall method timeout (request timeouts are kept as default).

Example

// Both `requestTimeoutMs` and `generalMethodTimeoutMs` are set to 1000ms.
await coll.insertOne({ ... }, { timeout: 1000 });

// `requestTimeoutMs` is left as default, `generalMethodTimeoutMs` is set to 2000ms.
await coll.insertOne({ ... }, { timeout: { generalMethodTimeoutMs: 2000 } });

// Both `requestTimeoutMs` and `generalMethodTimeoutMs` are set to 2000ms.
await coll.insertMany([...], {
timeout: { requestTimeoutMs: 2000, generalMethodTimeoutMs: 2000 },
});

Example

// `requestTimeoutMs` is left as default, `generalMethodTimeoutMs` is set to 2000ms.
await coll.insertMany([...], { timeout: 2000 });

// `requestTimeoutMs` is left as default, `generalMethodTimeoutMs` is set to 2000ms.
await coll.insertMany([...], { timeout: { generalMethodTimeoutMs: 2000 } });

// Both `requestTimeoutMs` and `generalMethodTimeoutMs` are set to 2000ms.
await coll.insertMany([...], {
timeout: { requestTimeoutMs: 2000, generalMethodTimeoutMs: 2000 },
});

See TimeoutDescriptor for much more information.

See

TimeoutDescriptor

upsert?: boolean

If true, perform an insert if no documents match the filter.

If false, do not insert if no documents match the filter.

Defaults to false.

Default Value

false
vector?: "ERROR: Use `sort: { $vector: [...] }` instead"

This temporary error-ing property exists for migration convenience, and will be removed in a future version.

Deprecated

  • Use sort: { $vector: [...] } instead.
vectorize?: "ERROR: Use `sort: { $vectorize: \"...\" }` instead"

This temporary error-ing property exists for migration convenience, and will be removed in a future version.

Deprecated

  • Use sort: { $vectorize: '...' } instead.