# @probitas/client-mongodb > Version: 0.6.0 MongoDB client for [Probitas](https://github.com/probitas-test/probitas) scenario testing framework. This package provides a MongoDB client designed for integration testing of applications using MongoDB. ## Features - **CRUD Operations**: find, findOne, insertOne, insertMany, updateOne, updateMany, deleteOne, deleteMany - **Aggregations**: Full aggregation pipeline support - **Sessions**: Transaction support with sessions - **Type Safety**: Generic type parameters for document types - **Resource Management**: Implements `AsyncDisposable` for proper cleanup ## Installation ```bash deno add jsr:@probitas/client-mongodb ``` ## Quick Start ```ts import { createMongoClient } from "@probitas/client-mongodb"; const client = await createMongoClient({ url: "mongodb://localhost:27017", database: "testdb", }); // Get a collection const users = client.collection<{ name: string; email: string }>("users"); // Insert a document const insertResult = await users.insertOne({ name: "Alice", email: "alice@example.com" }); if (insertResult.ok) { console.log("Inserted ID:", insertResult.insertedId); } else { console.error("Insert failed:", insertResult.error.message); } // Find documents const findResult = await users.find({ name: "Alice" }); if (findResult.ok) { console.log("Found:", findResult.docs); } // Find one document const user = await users.findOne({ name: "Alice" }); if (user.ok) { console.log("User:", user.doc); } await client.close(); ``` ## Transactions ```ts import { createMongoClient, type MongoSession } from "@probitas/client-mongodb"; const client = await createMongoClient({ url: "mongodb://localhost:27017", database: "testdb", }); await client.transaction(async (session: MongoSession) => { const accounts = client.collection("accounts"); await accounts.updateOne( { _id: "from" }, { $inc: { balance: -100 } }, ); await accounts.updateOne( { _id: "to" }, { $inc: { balance: 100 } }, ); }); await client.close(); ``` ## Using with `using` Statement ```ts import { createMongoClient } from "@probitas/client-mongodb"; await using client = await createMongoClient({ url: "mongodb://localhost:27017", database: "testdb", }); const result = await client.collection("test").findOne({}); console.log(result?.doc); // Client automatically closed when block exits ``` ## Related Packages | Package | Description | |---------|-------------| | [`@probitas/client`](https://jsr.io/@probitas/client) | Core utilities and types | ## Links - [GitHub Repository](https://github.com/probitas-test/probitas-client) - [Probitas Framework](https://github.com/probitas-test/probitas) - [MongoDB](https://www.mongodb.com/) ## Classes ### `MongoError` ```typescript class MongoError extends ClientError ``` Base error class for MongoDB client errors. **Constructor:** ```typescript new MongoError(message: string, _: unknown, options?: MongoErrorOptions) ``` **Properties:** - [readonly] `name`: `string` - [readonly] `code?`: `number` --- ### `MongoConnectionError` ```typescript class MongoConnectionError extends MongoError ``` Error thrown when a MongoDB connection cannot be established. **Constructor:** ```typescript new MongoConnectionError(message: string, options?: MongoErrorOptions) ``` **Properties:** - [readonly] `name`: `string` - [readonly] `kind`: `"connection"` --- ### `MongoQueryError` ```typescript class MongoQueryError extends MongoError ``` Error thrown when a MongoDB query fails. **Constructor:** ```typescript new MongoQueryError( message: string, collection: string, options?: MongoErrorOptions, ) ``` **Properties:** - [readonly] `name`: `string` - [readonly] `kind`: `"query"` - [readonly] `collection`: `string` --- ### `MongoDuplicateKeyError` ```typescript class MongoDuplicateKeyError extends MongoError ``` Error thrown when a duplicate key constraint is violated. **Constructor:** ```typescript new MongoDuplicateKeyError( message: string, keyPattern: Record, keyValue: Record, options?: MongoErrorOptions, ) ``` **Properties:** - [readonly] `name`: `string` - [readonly] `kind`: `"duplicate_key"` - [readonly] `keyPattern`: `Record` - [readonly] `keyValue`: `Record` --- ### `MongoValidationError` ```typescript class MongoValidationError extends MongoError ``` Error thrown when document validation fails. **Constructor:** ```typescript new MongoValidationError( message: string, validationErrors: readonly string[], options?: MongoErrorOptions, ) ``` **Properties:** - [readonly] `name`: `string` - [readonly] `kind`: `"validation"` - [readonly] `validationErrors`: `readonly string[]` --- ### `MongoWriteError` ```typescript class MongoWriteError extends MongoError ``` Error thrown when a write operation fails. **Constructor:** ```typescript new MongoWriteError( message: string, writeErrors: readonly { index: number; code: number; message: string }[], options?: MongoErrorOptions, ) ``` **Properties:** - [readonly] `name`: `string` - [readonly] `kind`: `"write"` - [readonly] `writeErrors`: `readonly { index: number; code: number; message: string }[]` --- ### `MongoNotFoundError` ```typescript class MongoNotFoundError extends MongoError ``` Error thrown when a document is not found (for firstOrThrow, lastOrThrow). **Constructor:** ```typescript new MongoNotFoundError(message: string, options?: MongoErrorOptions) ``` **Properties:** - [readonly] `name`: `string` - [readonly] `kind`: `"not_found"` --- ## Interfaces ### `MongoOptions` ```typescript interface MongoOptions extends CommonOptions ``` Common options with throwOnError support. **Properties:** - [readonly] `throwOnError?`: `boolean` — If true, throws errors instead of returning them in the result. If false (default), errors are returned in the result object. --- ### `MongoConnectionConfig` ```typescript interface MongoConnectionConfig extends CommonConnectionConfig ``` MongoDB connection configuration. Extends CommonConnectionConfig with MongoDB-specific options. **Properties:** - [readonly] `database?`: `string` — Database name to connect to. - [readonly] `authSource?`: `string` — Authentication database. - [readonly] `replicaSet?`: `string` — Replica set name. --- ### `MongoFindOptions` ```typescript interface MongoFindOptions extends MongoOptions ``` MongoDB find options **Properties:** - [readonly] `sort?`: `Record` - [readonly] `limit?`: `number` - [readonly] `skip?`: `number` - [readonly] `projection?`: `Record` --- ### `MongoUpdateOptions` ```typescript interface MongoUpdateOptions extends MongoOptions ``` MongoDB update options **Properties:** - [readonly] `upsert?`: `boolean` --- ### `MongoClientConfig` ```typescript interface MongoClientConfig extends MongoOptions ``` MongoDB client configuration. **Properties:** - [readonly] `url`: `string | MongoConnectionConfig` — MongoDB connection URL or configuration object. - [readonly] `database`: `string` — Database name to connect to. **Example:** Using a connection string ```ts const config: MongoClientConfig = { url: "mongodb://localhost:27017", database: "testdb", }; ``` Using a configuration object ```ts const config: MongoClientConfig = { url: { host: "localhost", port: 27017, username: "admin", password: "secret", authSource: "admin", }, database: "testdb", }; ``` --- ### `MongoSession` ```typescript interface MongoSession ``` MongoDB session interface (for transactions) **Methods:** ```typescript collection(name: string): MongoCollection ``` --- ### `MongoCollection` ```typescript interface MongoCollection ``` MongoDB collection interface **Methods:** ```typescript find(filter?: Filter, options?: MongoFindOptions): Promise> ``` ```typescript findOne(filter: Filter, options?: MongoOptions): Promise> ``` ```typescript insertOne( doc: Omit, options?: MongoOptions, ): Promise ``` ```typescript insertMany( docs: Omit[], options?: MongoOptions, ): Promise ``` ```typescript updateOne( filter: Filter, update: UpdateFilter, options?: MongoUpdateOptions, ): Promise ``` ```typescript updateMany( filter: Filter, update: UpdateFilter, options?: MongoUpdateOptions, ): Promise ``` ```typescript deleteOne(filter: Filter, options?: MongoOptions): Promise ``` ```typescript deleteMany(filter: Filter, options?: MongoOptions): Promise ``` ```typescript aggregate( pipeline: Document[], options?: MongoOptions, ): Promise> ``` ```typescript countDocuments( filter?: Filter, options?: MongoOptions, ): Promise ``` --- ### `MongoClient` ```typescript interface MongoClient extends AsyncDisposable ``` MongoDB client interface **Properties:** - [readonly] `config`: `MongoClientConfig` **Methods:** ```typescript collection(name: string): MongoCollection ``` ```typescript db(name: string): MongoClient ``` ```typescript transaction(fn: (session: MongoSession) => unknown): Promise ``` ```typescript close(): Promise ``` --- ### `MongoErrorOptions` ```typescript interface MongoErrorOptions extends ErrorOptions ``` Options for MongoDB errors. **Properties:** - [readonly] `code?`: `number` --- ### `MongoFindResultSuccess` ```typescript interface MongoFindResultSuccess extends MongoFindResultBase ``` Successful find result. **Properties:** - [readonly] `processed`: `true` - [readonly] `ok`: `true` - [readonly] `error`: `null` - [readonly] `docs`: `readonly T[]` --- ### `MongoFindResultError` ```typescript interface MongoFindResultError extends MongoFindResultBase ``` Find result with MongoDB error. **Properties:** - [readonly] `processed`: `true` - [readonly] `ok`: `false` - [readonly] `error`: `MongoError` - [readonly] `docs`: `readonly T[]` --- ### `MongoFindResultFailure` ```typescript interface MongoFindResultFailure extends MongoFindResultBase ``` Find result with connection failure. **Properties:** - [readonly] `processed`: `false` - [readonly] `ok`: `false` - [readonly] `error`: `MongoFailureError` - [readonly] `docs`: `null` --- ### `MongoFindOneResultSuccess` ```typescript interface MongoFindOneResultSuccess extends MongoFindOneResultBase ``` Successful findOne result. **Properties:** - [readonly] `processed`: `true` - [readonly] `ok`: `true` - [readonly] `error`: `null` - [readonly] `doc`: `T | null` --- ### `MongoFindOneResultError` ```typescript interface MongoFindOneResultError extends MongoFindOneResultBase ``` FindOne result with MongoDB error. **Properties:** - [readonly] `processed`: `true` - [readonly] `ok`: `false` - [readonly] `error`: `MongoError` - [readonly] `doc`: `null` --- ### `MongoFindOneResultFailure` ```typescript interface MongoFindOneResultFailure extends MongoFindOneResultBase ``` FindOne result with connection failure. **Properties:** - [readonly] `processed`: `false` - [readonly] `ok`: `false` - [readonly] `error`: `MongoFailureError` - [readonly] `doc`: `null` --- ### `MongoInsertOneResultSuccess` ```typescript interface MongoInsertOneResultSuccess extends MongoInsertOneResultBase ``` Successful insertOne result. **Properties:** - [readonly] `processed`: `true` - [readonly] `ok`: `true` - [readonly] `error`: `null` - [readonly] `insertedId`: `string` --- ### `MongoInsertOneResultError` ```typescript interface MongoInsertOneResultError extends MongoInsertOneResultBase ``` InsertOne result with MongoDB error. **Properties:** - [readonly] `processed`: `true` - [readonly] `ok`: `false` - [readonly] `error`: `MongoError` - [readonly] `insertedId`: `null` --- ### `MongoInsertOneResultFailure` ```typescript interface MongoInsertOneResultFailure extends MongoInsertOneResultBase ``` InsertOne result with connection failure. **Properties:** - [readonly] `processed`: `false` - [readonly] `ok`: `false` - [readonly] `error`: `MongoFailureError` - [readonly] `insertedId`: `null` --- ### `MongoInsertManyResultSuccess` ```typescript interface MongoInsertManyResultSuccess extends MongoInsertManyResultBase ``` Successful insertMany result. **Properties:** - [readonly] `processed`: `true` - [readonly] `ok`: `true` - [readonly] `error`: `null` - [readonly] `insertedIds`: `readonly string[]` - [readonly] `insertedCount`: `number` --- ### `MongoInsertManyResultError` ```typescript interface MongoInsertManyResultError extends MongoInsertManyResultBase ``` InsertMany result with MongoDB error. **Properties:** - [readonly] `processed`: `true` - [readonly] `ok`: `false` - [readonly] `error`: `MongoError` - [readonly] `insertedIds`: `null` - [readonly] `insertedCount`: `null` --- ### `MongoInsertManyResultFailure` ```typescript interface MongoInsertManyResultFailure extends MongoInsertManyResultBase ``` InsertMany result with connection failure. **Properties:** - [readonly] `processed`: `false` - [readonly] `ok`: `false` - [readonly] `error`: `MongoFailureError` - [readonly] `insertedIds`: `null` - [readonly] `insertedCount`: `null` --- ### `MongoUpdateResultSuccess` ```typescript interface MongoUpdateResultSuccess extends MongoUpdateResultBase ``` Successful update result. **Properties:** - [readonly] `processed`: `true` - [readonly] `ok`: `true` - [readonly] `error`: `null` - [readonly] `matchedCount`: `number` - [readonly] `modifiedCount`: `number` - [readonly] `upsertedId`: `string | null` --- ### `MongoUpdateResultError` ```typescript interface MongoUpdateResultError extends MongoUpdateResultBase ``` Update result with MongoDB error. **Properties:** - [readonly] `processed`: `true` - [readonly] `ok`: `false` - [readonly] `error`: `MongoError` - [readonly] `matchedCount`: `null` - [readonly] `modifiedCount`: `null` - [readonly] `upsertedId`: `null` --- ### `MongoUpdateResultFailure` ```typescript interface MongoUpdateResultFailure extends MongoUpdateResultBase ``` Update result with connection failure. **Properties:** - [readonly] `processed`: `false` - [readonly] `ok`: `false` - [readonly] `error`: `MongoFailureError` - [readonly] `matchedCount`: `null` - [readonly] `modifiedCount`: `null` - [readonly] `upsertedId`: `null` --- ### `MongoDeleteResultSuccess` ```typescript interface MongoDeleteResultSuccess extends MongoDeleteResultBase ``` Successful delete result. **Properties:** - [readonly] `processed`: `true` - [readonly] `ok`: `true` - [readonly] `error`: `null` - [readonly] `deletedCount`: `number` --- ### `MongoDeleteResultError` ```typescript interface MongoDeleteResultError extends MongoDeleteResultBase ``` Delete result with MongoDB error. **Properties:** - [readonly] `processed`: `true` - [readonly] `ok`: `false` - [readonly] `error`: `MongoError` - [readonly] `deletedCount`: `null` --- ### `MongoDeleteResultFailure` ```typescript interface MongoDeleteResultFailure extends MongoDeleteResultBase ``` Delete result with connection failure. **Properties:** - [readonly] `processed`: `false` - [readonly] `ok`: `false` - [readonly] `error`: `MongoFailureError` - [readonly] `deletedCount`: `null` --- ### `MongoCountResultSuccess` ```typescript interface MongoCountResultSuccess extends MongoCountResultBase ``` Successful count result. **Properties:** - [readonly] `processed`: `true` - [readonly] `ok`: `true` - [readonly] `error`: `null` - [readonly] `count`: `number` --- ### `MongoCountResultError` ```typescript interface MongoCountResultError extends MongoCountResultBase ``` Count result with MongoDB error. **Properties:** - [readonly] `processed`: `true` - [readonly] `ok`: `false` - [readonly] `error`: `MongoError` - [readonly] `count`: `null` --- ### `MongoCountResultFailure` ```typescript interface MongoCountResultFailure extends MongoCountResultBase ``` Count result with connection failure. **Properties:** - [readonly] `processed`: `false` - [readonly] `ok`: `false` - [readonly] `error`: `MongoFailureError` - [readonly] `count`: `null` --- ## Functions ### `createMongoClient` ```typescript async function createMongoClient( config: MongoClientConfig, ): Promise ``` Create a new MongoDB client instance. The client provides typed collection access, aggregation pipelines, transaction support, and comprehensive CRUD operations. **Parameters:** - `config`: `MongoClientConfig` — - MongoDB client configuration **Returns:** `Promise` A promise resolving to a new MongoDB client instance **Example:** Basic usage with connection string ```ts import { createMongoClient } from "@probitas/client-mongodb"; const mongo = await createMongoClient({ url: "mongodb://localhost:27017", database: "testdb", }); const users = mongo.collection<{ name: string; age: number }>("users"); const result = await users.find({ age: { $gte: 18 } }); if (result.ok) { console.log(result.docs[0]); } else { console.error("Error:", result.error.message); } await mongo.close(); ``` Using connection config object ```ts import { createMongoClient } from "@probitas/client-mongodb"; const mongo = await createMongoClient({ url: { host: "localhost", port: 27017, username: "admin", password: "secret", authSource: "admin", }, database: "testdb", }); await mongo.close(); ``` Insert and query documents ```ts import { createMongoClient } from "@probitas/client-mongodb"; interface User { name: string; age: number } const mongo = await createMongoClient({ url: "mongodb://localhost:27017", database: "testdb", }); const users = mongo.collection("users"); // Insert a document const insertResult = await users.insertOne({ name: "Alice", age: 30 }); if (insertResult.ok) { console.log("Inserted ID:", insertResult.insertedId); } // Find documents with projection and sorting const findResult = await users.find( { age: { $gte: 25 } }, { sort: { name: 1 }, limit: 10 } ); if (findResult.ok) { console.log("Found:", findResult.docs.length); } await mongo.close(); ``` Transaction with auto-commit/rollback ```ts import { createMongoClient } from "@probitas/client-mongodb"; interface User { _id?: unknown; name: string; age: number } const mongo = await createMongoClient({ url: "mongodb://localhost:27017", database: "testdb", }); await mongo.transaction(async (session) => { const users = session.collection("users"); const insertResult = await users.insertOne({ name: "Bob", age: 25 }); if (!insertResult.ok) throw insertResult.error; const updateResult = await users.updateOne( { name: "Alice" }, { $inc: { age: 1 } } ); if (!updateResult.ok) throw updateResult.error; }); await mongo.close(); ``` Aggregation pipeline ```ts import { createMongoClient } from "@probitas/client-mongodb"; interface User { name: string; age: number; department: string } const mongo = await createMongoClient({ url: "mongodb://localhost:27017", database: "testdb", }); const users = mongo.collection("users"); const result = await users.aggregate<{ _id: string; avgAge: number }>([ { $group: { _id: "$department", avgAge: { $avg: "$age" } } }, { $sort: { avgAge: -1 } }, ]); if (result.ok) { console.log(result.docs); } await mongo.close(); ``` Using `await using` for automatic cleanup ```ts import { createMongoClient } from "@probitas/client-mongodb"; await using mongo = await createMongoClient({ url: "mongodb://localhost:27017", database: "testdb", }); const result = await mongo.collection("users").find({}); if (result.ok) { console.log(result.docs); } // Client automatically closed when scope exits ``` --- ## Types ### `MongoCountResult` ```typescript type MongoCountResult = MongoCountResultSuccess | MongoCountResultError | MongoCountResultFailure ``` Count result. --- ### `MongoDeleteResult` ```typescript type MongoDeleteResult = MongoDeleteResultSuccess | MongoDeleteResultError | MongoDeleteResultFailure ``` Delete result. --- ### `MongoFailureError` ```typescript type MongoFailureError = MongoConnectionError | AbortError | TimeoutError ``` Error types that indicate the operation was not processed. These are errors that occur before the operation reaches the MongoDB server. --- ### `MongoFindOneResult` ```typescript type MongoFindOneResult = MongoFindOneResultSuccess | MongoFindOneResultError | MongoFindOneResultFailure ``` FindOne result. --- ### `MongoFindResult` ```typescript type MongoFindResult = MongoFindResultSuccess | MongoFindResultError | MongoFindResultFailure ``` Query result (find, aggregate). --- ### `MongoInsertManyResult` ```typescript type MongoInsertManyResult = MongoInsertManyResultSuccess | MongoInsertManyResultError | MongoInsertManyResultFailure ``` Insert many result. --- ### `MongoInsertOneResult` ```typescript type MongoInsertOneResult = MongoInsertOneResultSuccess | MongoInsertOneResultError | MongoInsertOneResultFailure ``` Insert one result. --- ### `MongoResult` ```typescript type MongoResult = MongoFindResult | MongoInsertOneResult | MongoInsertManyResult | MongoUpdateResult | MongoDeleteResult | MongoFindOneResult | MongoCountResult ``` Union of all MongoDB result types. --- ### `MongoUpdateResult` ```typescript type MongoUpdateResult = MongoUpdateResultSuccess | MongoUpdateResultError | MongoUpdateResultFailure ``` Update result. --- ### `Document` ```typescript type Document = Record ``` MongoDB document type --- ### `Filter` ```typescript type Filter = Record ``` MongoDB filter type (simplified for compatibility with mongodb driver) Allows query operators like $gte, $lt, $in, etc. --- ### `UpdateFilter` ```typescript type UpdateFilter = Record ``` MongoDB update filter type (simplified for compatibility with mongodb driver) Allows update operators like $set, $inc, $unset, etc. --- ### `MongoOperationError` ```typescript type MongoOperationError = MongoQueryError | MongoDuplicateKeyError | MongoValidationError | MongoWriteError | MongoNotFoundError | MongoError ``` Error types that indicate a MongoDB operation error. These are errors where the operation reached the server but failed. --- ## Related Links ### This Package - [`Document`](https://probitas-test.github.io/documents/api/client-mongodb#Document) - [`Filter`](https://probitas-test.github.io/documents/api/client-mongodb#Filter) - [`MongoClient`](https://probitas-test.github.io/documents/api/client-mongodb#MongoClient) - [`MongoClientConfig`](https://probitas-test.github.io/documents/api/client-mongodb#MongoClientConfig) - [`MongoCollection`](https://probitas-test.github.io/documents/api/client-mongodb#MongoCollection) - [`MongoConnectionConfig`](https://probitas-test.github.io/documents/api/client-mongodb#MongoConnectionConfig) - [`MongoConnectionError`](https://probitas-test.github.io/documents/api/client-mongodb#MongoConnectionError) - [`MongoCountResult`](https://probitas-test.github.io/documents/api/client-mongodb#MongoCountResult) - [`MongoCountResultError`](https://probitas-test.github.io/documents/api/client-mongodb#MongoCountResultError) - [`MongoCountResultFailure`](https://probitas-test.github.io/documents/api/client-mongodb#MongoCountResultFailure) - [`MongoCountResultSuccess`](https://probitas-test.github.io/documents/api/client-mongodb#MongoCountResultSuccess) - [`MongoDeleteResult`](https://probitas-test.github.io/documents/api/client-mongodb#MongoDeleteResult) - [`MongoDeleteResultError`](https://probitas-test.github.io/documents/api/client-mongodb#MongoDeleteResultError) - [`MongoDeleteResultFailure`](https://probitas-test.github.io/documents/api/client-mongodb#MongoDeleteResultFailure) - [`MongoDeleteResultSuccess`](https://probitas-test.github.io/documents/api/client-mongodb#MongoDeleteResultSuccess) - [`MongoDuplicateKeyError`](https://probitas-test.github.io/documents/api/client-mongodb#MongoDuplicateKeyError) - [`MongoError`](https://probitas-test.github.io/documents/api/client-mongodb#MongoError) - [`MongoErrorOptions`](https://probitas-test.github.io/documents/api/client-mongodb#MongoErrorOptions) - [`MongoFailureError`](https://probitas-test.github.io/documents/api/client-mongodb#MongoFailureError) - [`MongoFindOneResult`](https://probitas-test.github.io/documents/api/client-mongodb#MongoFindOneResult) - [`MongoFindOneResultError`](https://probitas-test.github.io/documents/api/client-mongodb#MongoFindOneResultError) - [`MongoFindOneResultFailure`](https://probitas-test.github.io/documents/api/client-mongodb#MongoFindOneResultFailure) - [`MongoFindOneResultSuccess`](https://probitas-test.github.io/documents/api/client-mongodb#MongoFindOneResultSuccess) - [`MongoFindOptions`](https://probitas-test.github.io/documents/api/client-mongodb#MongoFindOptions) - [`MongoFindResult`](https://probitas-test.github.io/documents/api/client-mongodb#MongoFindResult) - [`MongoFindResultError`](https://probitas-test.github.io/documents/api/client-mongodb#MongoFindResultError) - [`MongoFindResultFailure`](https://probitas-test.github.io/documents/api/client-mongodb#MongoFindResultFailure) - [`MongoFindResultSuccess`](https://probitas-test.github.io/documents/api/client-mongodb#MongoFindResultSuccess) - [`MongoInsertManyResult`](https://probitas-test.github.io/documents/api/client-mongodb#MongoInsertManyResult) - [`MongoInsertManyResultError`](https://probitas-test.github.io/documents/api/client-mongodb#MongoInsertManyResultError) - [`MongoInsertManyResultFailure`](https://probitas-test.github.io/documents/api/client-mongodb#MongoInsertManyResultFailure) - [`MongoInsertManyResultSuccess`](https://probitas-test.github.io/documents/api/client-mongodb#MongoInsertManyResultSuccess) - [`MongoInsertOneResult`](https://probitas-test.github.io/documents/api/client-mongodb#MongoInsertOneResult) - [`MongoInsertOneResultError`](https://probitas-test.github.io/documents/api/client-mongodb#MongoInsertOneResultError) - [`MongoInsertOneResultFailure`](https://probitas-test.github.io/documents/api/client-mongodb#MongoInsertOneResultFailure) - [`MongoInsertOneResultSuccess`](https://probitas-test.github.io/documents/api/client-mongodb#MongoInsertOneResultSuccess) - [`MongoNotFoundError`](https://probitas-test.github.io/documents/api/client-mongodb#MongoNotFoundError) - [`MongoOptions`](https://probitas-test.github.io/documents/api/client-mongodb#MongoOptions) - [`MongoQueryError`](https://probitas-test.github.io/documents/api/client-mongodb#MongoQueryError) - [`MongoSession`](https://probitas-test.github.io/documents/api/client-mongodb#MongoSession) - [`MongoUpdateOptions`](https://probitas-test.github.io/documents/api/client-mongodb#MongoUpdateOptions) - [`MongoUpdateResult`](https://probitas-test.github.io/documents/api/client-mongodb#MongoUpdateResult) - [`MongoUpdateResultError`](https://probitas-test.github.io/documents/api/client-mongodb#MongoUpdateResultError) - [`MongoUpdateResultFailure`](https://probitas-test.github.io/documents/api/client-mongodb#MongoUpdateResultFailure) - [`MongoUpdateResultSuccess`](https://probitas-test.github.io/documents/api/client-mongodb#MongoUpdateResultSuccess) - [`MongoValidationError`](https://probitas-test.github.io/documents/api/client-mongodb#MongoValidationError) - [`MongoWriteError`](https://probitas-test.github.io/documents/api/client-mongodb#MongoWriteError) - [`UpdateFilter`](https://probitas-test.github.io/documents/api/client-mongodb#UpdateFilter) ### Other Packages - [`AbortError`](https://probitas-test.github.io/documents/api/client#AbortError) (@probitas/client) - [`CommonConnectionConfig`](https://probitas-test.github.io/documents/api/client#CommonConnectionConfig) (@probitas/client) - [`CommonOptions`](https://probitas-test.github.io/documents/api/client#CommonOptions) (@probitas/client) - [`TimeoutError`](https://probitas-test.github.io/documents/api/client#TimeoutError) (@probitas/client) ### Built-in Types - [`Omit`](https://www.typescriptlang.org/docs/handbook/utility-types.html#omittype-keys) - [`Promise`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) - [`Record`](https://www.typescriptlang.org/docs/handbook/utility-types.html#recordkeys-type) --- *Last updated: 2026-01-12*