Skip to main content

AbimongoClient

@abimongo/core v1.1.4


@abimongo/core / AbimongoClient

Class: AbimongoClient

Defined in: core/src/lib-core/AbimongoClient.ts:40

AbimongoClient is a MongoDB client wrapper that provides a simplified interface for connecting to and interacting with MongoDB databases. It supports multi-tenancy, connection pooling, and error handling. It also provides methods for connecting to a database, getting collections name and dropping databases.

Param

The MongoDB connection URI.

Param

Optional configuration options for the client.

Param

The name of the database to connect to.

Param

The name of the collection to use.

Param

An optional MongoDB client instance to use.

Param

An optional logger instance for logging messages. AbimongoClient

Extended by

Implements

Constructors

Constructor

new AbimongoClient(uri, _options?): AbimongoClient

Defined in: core/src/lib-core/AbimongoClient.ts:52

Parameters

uri

string = AbimongoClient.defaultUri

_options?

AbimongoClientOptions

Returns

AbimongoClient

Properties

_options?

optional _options: AbimongoClientOptions

Defined in: core/src/lib-core/AbimongoClient.ts:54


uri

uri: string = AbimongoClient.defaultUri

Defined in: core/src/lib-core/AbimongoClient.ts:53

The MongoDB connection URI.

Implementation of

AbimongoClientConfig.uri

Accessors

client

Get Signature

get client(): MongoClient

Defined in: core/src/lib-core/AbimongoClient.ts:264

Gets the current MongoClient instance.

Returns

MongoClient

The connected MongoClient instance.

An optional MongoClient instance.

Implementation of

AbimongoClientConfig.client


db

Get Signature

get db(): Db

Defined in: core/src/lib-core/AbimongoClient.ts:245

Gets the current database instance.

Throws

If the database connection is not established.

Returns

Db

The connected database instance.

Methods

close()

close(): Promise<void>

Defined in: core/src/lib-core/AbimongoClient.ts:455

Closes the MongoDB client connection.

Returns

Promise<void>

A promise that resolves when the client is closed.


collection()

collection<T>(name): Collection<T>

Defined in: core/src/lib-core/AbimongoClient.ts:319

Retrieves a MongoDB collection by name.

Type Parameters

T

T extends Document

Parameters

name

string

The name of the collection to retrieve.

Returns

Collection<T>

The MongoDB collection instance.

Throws

If the database connection is not established.


connect()

connect(): Promise<Db>

Defined in: core/src/lib-core/AbimongoClient.ts:291

Establishes a connection to the MongoDB database.

Returns

Promise<Db>

A promise that resolves to the connected database instance.


connectDb()

connectDb(uri, options?): Promise<AbimongoClient>

Defined in: core/src/lib-core/AbimongoClient.ts:108

Connects to the MongoDB database using the provided URI and options.

Parameters

uri

string

The MongoDB connection URI.

options?

AbimongoClientOptions

Optional configuration options for the client.

Returns

Promise<AbimongoClient>

A promise that resolves to the connected AbimongoClient instance.

Throws

If the URI is not provided.


disconnect()

disconnect(): Promise<void>

Defined in: core/src/lib-core/AbimongoClient.ts:443

Disconnects from the MongoDB database.

Returns

Promise<void>

A promise that resolves when the client is disconnected.


dropCollection()

dropCollection(): Promise<void>

Defined in: core/src/lib-core/AbimongoClient.ts:408

Drops the specified collection from the database.

Returns

Promise<void>

A promise that resolves when the collection is dropped.


dropDatabase()

dropDatabase(): Promise<boolean>

Defined in: core/src/lib-core/AbimongoClient.ts:418

Drops the entire database.

Returns

Promise<boolean>

A promise that resolves to true if the database is dropped successfully, false otherwise.


getClusterInfo()

getClusterInfo(): Promise<{ setName?: string; type: string; }>

Defined in: core/src/lib-core/AbimongoClient.ts:349

Retrieves information about the MongoDB cluster type (e.g., standalone, replica set, sharded).

Returns

Promise<{ setName?: string; type: string; }>

A promise that resolves to an object containing the cluster type and set name (if applicable).


getCollection()

getCollection<T>(name): Collection<T>

Defined in: core/src/lib-core/AbimongoClient.ts:336

Retrieves a MongoDB collection by name, defaulting to the collection specified in the options if not provided.

Type Parameters

T

T extends Document

Parameters

name

string

The name of the collection to retrieve.

Returns

Collection<T>

The MongoDB collection instance.

Throws

If the database connection is not established.


isConnected()

isConnected(): boolean

Defined in: core/src/lib-core/AbimongoClient.ts:463

Checks if the MongoDB client is connected.

Returns

boolean

true if the client is connected, false otherwise.


useCollection()

useCollection(collectionName): Promise<Collection<any>>

Defined in: core/src/lib-core/AbimongoClient.ts:391

Switches to a different collection at runtime.

Parameters

collectionName

string

The name of the collection to switch to.

Returns

Promise<Collection<any>>

A promise that resolves to the new collection instance.

Throws

If the client is not initialized or the collection name is not provided.


useDatabase()

useDatabase(dbName): Promise<{ client: MongoClient; db: Db; }>

Defined in: core/src/lib-core/AbimongoClient.ts:371

Switches to a different database at runtime (e.g., for multi-tenancy).

Parameters

dbName

string

The name of the database to switch to.

Returns

Promise<{ client: MongoClient; db: Db; }>

A promise that resolves to the new database instance.

Throws

If the client is not initialized or the database name is not provided.


validateUri()

validateUri(uri): void

Defined in: core/src/lib-core/AbimongoClient.ts:273

Validates the MongoDB URI to ensure it starts with "mongodb://" or "mongodb+srv://".

Parameters

uri

string

The MongoDB connection URI.

Returns

void

Throws

If the URI is invalid.


getAllTenantDBs()

static getAllTenantDBs(): Promise<Db[]>

Defined in: core/src/lib-core/AbimongoClient.ts:207

Returns

Promise<Db[]>


getDatabase()

static getDatabase(tenantId, uri): Promise<{ client: MongoClient; db: Db; }>

Defined in: core/src/lib-core/AbimongoClient.ts:132

Retrieves the database connection for a specific tenant.

Parameters

tenantId

string

The ID of the tenant.

uri

string

The MongoDB connection URI.

Returns

Promise<{ client: MongoClient; db: Db; }>

A promise that resolves to the connected database instance.

Throws

If the MongoClient instance is undefined.


getRegisteredModel()

static getRegisteredModel(modelName, tenantId, schema?): GetTanantModelParams<Db> & object

Defined in: core/src/lib-core/AbimongoClient.ts:218

Parameters

modelName

string

tenantId

string

schema?

AbimongoSchema<any>

Returns

GetTanantModelParams<Db> & object


getTenantDB()

static getTenantDB(tenantId): Db

Defined in: core/src/lib-core/AbimongoClient.ts:186

Retrieves the database connection for a specific tenant.

Parameters

tenantId

string

The ID of the tenant.

Returns

Db

The connected database instance.

Throws

If the MongoClient instance is undefined.


handleTopologyEvent()

static handleTopologyEvent(event): void

Defined in: core/src/lib-core/AbimongoClient.ts:490

Handles MongoDB topology events (e.g., opening, closing).

Parameters

event

The topology event to handle.

TopologyOpeningEvent | TopologyClosedEvent

Returns

void


init()

static init(): string | Db

Defined in: core/src/lib-core/AbimongoClient.ts:77

Returns

string | Db


runGlobalGC()

static runGlobalGC(): Promise<void>

Defined in: core/src/lib-core/AbimongoClient.ts:234

Returns

Promise<void>