Interface FindOneAndUpdateOptions



arrayFilters?: Document[]

Optional list of array filters referenced in filtered positional operators

authdb?: string
bsonRegExp?: boolean

return BSON regular expressions as BSONRegExp instances.

Default Value


bypassDocumentValidation?: boolean

Allow driver to bypass schema validation in MongoDB 3.2 or higher.

checkKeys?: boolean

the serializer will check if keys are valid.

Default Value


collation?: CollationOptions


comment?: unknown

Comment to apply to the operation.

In server versions pre-4.4, 'comment' must be string. A server error will be thrown if any other type is provided.

In server versions 4.4 and above, 'comment' can be any valid BSON type.

dbName?: string
enableUtf8Validation?: boolean

Enable utf8 validation when deserializing BSON documents. Defaults to true.

Specifies the verbosity mode for the explain output.

fieldsAsRaw?: Document

allow to specify if there what fields we wish to return as unserialized raw buffer.

Default Value


hint?: Document

An optional hint for query optimization. See the command reference for more information.

ignoreUndefined?: boolean

serialize will not emit undefined fields note that the driver sets this to false

Default Value


includeResultMetadata?: boolean

Return the ModifyResult instead of the modified document. Defaults to true but will default to false in the next major version.

let?: Document

Map of parameter names and values that can be accessed using $$var (requires MongoDB 5.0).

maxTimeMS?: number
noResponse?: boolean
omitReadPreference?: boolean
projection?: Document

Limits the fields to return for all matching documents.

promoteBuffers?: boolean

when deserializing a Binary will return it as a node.js Buffer instance.

Default Value


promoteLongs?: boolean

when deserializing a Long will fit it into a Number if it's smaller than 53 bits.

Default Value


promoteValues?: boolean

when deserializing will promote BSON values to their Node.js closest equivalent types.

Default Value


raw?: boolean

Enabling the raw option will return a Node.js Buffer which is allocated using allocUnsafe API. See this section from the Node.js Docs here for more detail about what "unsafe" refers to in this context. If you need to maintain your own editable clone of the bytes returned for an extended life time of the process, it is recommended you allocate your own buffer and clone the contents:


const raw = await collection.findOne({}, { raw: true });
const myBuffer = Buffer.alloc(raw.byteLength);
myBuffer.set(raw, 0);
// Only save and use `myBuffer` beyond this point


Please note there is a known limitation where this option cannot be used at the MongoClient level (see NODE-3946). It does correctly work at Db, Collection, and per operation the same as other BSON options work.

readConcern?: ReadConcernLike

Specify a read concern and level for the collection. (only MongoDB 3.2 or higher supported)

readPreference?: ReadPreferenceLike

The preferred read preference (ReadPreference.primary, ReadPreference.primary_preferred, ReadPreference.secondary, ReadPreference.secondary_preferred, ReadPreference.nearest).

retryWrites?: boolean

Should retry failed writes

returnDocument?: ReturnDocument

When set to 'after', returns the updated document rather than the original. The default is 'before'.

serializeFunctions?: boolean

serialize the javascript functions

Default Value


session?: ClientSession

Specify ClientSession for this command

sort?: Sort

Determines which document the operation modifies if the query selects multiple documents.

upsert?: boolean

Upsert the document if it does not exist.

useBigInt64?: boolean

when deserializing a Long return as a BigInt.

Default Value


willRetryWrite?: boolean

Write Concern as an object

Generated using TypeDoc