npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@xylabs/mongo

v5.0.94

Published

Base functionality used throughout XYO TypeScript/JavaScript libraries that access Mongo DB

Readme

@xylabs/mongo

logo

main-build npm-badge npm-downloads-badge jsdelivr-badge npm-license-badge codacy-badge codeclimate-badge snyk-badge socket-badge

Base functionality used throughout XYO TypeScript/JavaScript libraries that access Mongo DB

Reference

@xylabs/mongo


Classes

| Class | Description | | ------ | ------ | | BaseMongoSdk | Provides a typed wrapper around common MongoDB collection operations. | | MongoClientWrapper | Manages a shared pool of MongoClient instances, reusing connections by URI. |

Interfaces

| Interface | Description | | ------ | ------ | | BaseMongoSdkPublicConfig | Public configuration options for the Mongo SDK, safe to expose to clients. | | BaseMongoSdkPrivateConfig | Private configuration options for the Mongo SDK containing connection credentials. |

Type Aliases

| Type Alias | Description | | ------ | ------ | | BaseMongoSdkConfig | Combined public and private MongoDB SDK configuration. |

classes

BaseMongoSdk

@xylabs/mongo


Provides a typed wrapper around common MongoDB collection operations.

Type Parameters

| Type Parameter | | ------ | | T extends Document |

Constructors

Constructor

new BaseMongoSdk<T>(config: BaseMongoSdkConfig): BaseMongoSdk<T>;

Parameters

| Parameter | Type | | ------ | ------ | | config | BaseMongoSdkConfig |

Returns

BaseMongoSdk<T>

Properties

| Property | Type | Description | | ------ | ------ | ------ | | config | BaseMongoSdkConfig | The MongoDB SDK configuration for this instance. |

Accessors

uri

Get Signature

get uri(): string;

Returns the MongoDB connection URI, either from the config or constructed from individual credential fields.

Returns

string

Methods

deleteMany()

deleteMany(filter: Filter<T>): Promise<DeleteResult>;

Deletes all documents matching the filter.

Parameters

| Parameter | Type | Description | | ------ | ------ | ------ | | filter | Filter<T> | The query filter to match documents for deletion |

Returns

Promise<DeleteResult>


deleteOne()

deleteOne(filter: Filter<T>): Promise<DeleteResult>;

Deletes the first document matching the filter.

Parameters

| Parameter | Type | Description | | ------ | ------ | ------ | | filter | Filter<T> | The query filter to match a document for deletion |

Returns

Promise<DeleteResult>


find()

find(filter: Filter<T>): Promise<FindCursor<WithId<T>>>;

Finds all documents matching the filter and returns a cursor.

Parameters

| Parameter | Type | Description | | ------ | ------ | ------ | | filter | Filter<T> | The query filter |

Returns

Promise<FindCursor<WithId<T>>>


findOne()

findOne(filter: Filter<T>): Promise<WithId<T> | null>;

Finds a single document matching the filter.

Parameters

| Parameter | Type | Description | | ------ | ------ | ------ | | filter | Filter<T> | The query filter |

Returns

Promise<WithId<T> | null>

The matched document, or null if not found


insertMany()

insertMany(items: OptionalUnlessRequiredId<T>[], options?: BulkWriteOptions): Promise<InsertManyResult<T>>;

Inserts multiple documents into the collection.

Parameters

| Parameter | Type | Description | | ------ | ------ | ------ | | items | OptionalUnlessRequiredId<T>[] | The documents to insert | | options? | BulkWriteOptions | Optional bulk write options |

Returns

Promise<InsertManyResult<T>>


insertOne()

insertOne(item: OptionalUnlessRequiredId<T>, options?: InsertOneOptions): Promise<InsertOneResult<T>>;

Inserts a single document into the collection.

Parameters

| Parameter | Type | Description | | ------ | ------ | ------ | | item | OptionalUnlessRequiredId<T> | The document to insert | | options? | InsertOneOptions | Optional insert options |

Returns

Promise<InsertOneResult<T>>


replaceOne()

replaceOne(
   filter: Filter<T>, 
   item: OptionalUnlessRequiredId<T>, 
options?: ReplaceOptions): Promise<UpdateResult<T>>;

Replaces a single document matching the filter.

Parameters

| Parameter | Type | Description | | ------ | ------ | ------ | | filter | Filter<T> | The query filter to match the document | | item | OptionalUnlessRequiredId<T> | The replacement document | | options? | ReplaceOptions | Optional replace options |

Returns

Promise<UpdateResult<T>>


updateOne()

updateOne(filter: Filter<T>, fields: UpdateFilter<T>): Promise<UpdateResult<T>>;

Updates a single document matching the filter without upserting.

Parameters

| Parameter | Type | Description | | ------ | ------ | ------ | | filter | Filter<T> | The query filter to match the document | | fields | UpdateFilter<T> | The update operations to apply |

Returns

Promise<UpdateResult<T>>


upsertOne()

upsertOne(filter: Filter<T>, fields: UpdateFilter<T>): Promise<UpdateResult<T>>;

Updates a single document matching the filter, inserting it if it does not exist.

Parameters

| Parameter | Type | Description | | ------ | ------ | ------ | | filter | Filter<T> | The query filter to match the document | | fields | UpdateFilter<T> | The update operations to apply |

Returns

Promise<UpdateResult<T>>


useCollection()

useCollection<R>(func: (collection: Collection<T>) => R | Promise<R>): Promise<R>;

Executes a callback with access to the configured MongoDB collection.

Type Parameters

| Type Parameter | | ------ | | R |

Parameters

| Parameter | Type | Description | | ------ | ------ | ------ | | func | (collection: Collection<T>) => R | Promise<R> | A callback receiving the typed collection |

Returns

Promise<R>

The result of the callback


useMongo()

useMongo<R>(func: (client: MongoClient) => R | Promise<R>): Promise<R>;

Executes a callback with a connected MongoClient, handling connection and disconnection.

Type Parameters

| Type Parameter | | ------ | | R |

Parameters

| Parameter | Type | Description | | ------ | ------ | ------ | | func | (client: MongoClient) => R | Promise<R> | A callback receiving the connected MongoClient |

Returns

Promise<R>

The result of the callback

MongoClientWrapper

@xylabs/mongo


Manages a shared pool of MongoClient instances, reusing connections by URI.

Constructors

Constructor

new MongoClientWrapper(
   uri: string, 
   maxPoolSize?: number, 
   closeDelay?: number): MongoClientWrapper;

Parameters

| Parameter | Type | | ------ | ------ | | uri | string | | maxPoolSize? | number | | closeDelay? | number |

Returns

MongoClientWrapper

Properties

| Property | Modifier | Type | Description | | ------ | ------ | ------ | ------ | | clients | readonly | Map<string, MongoClientWrapper> | Global cache of wrapper instances keyed by connection URI. |

Methods

get()

static get(
   uri: string, 
   poolSize?: number, 
   closeDelay?: number): MongoClientWrapper;

Gets or creates a cached MongoClientWrapper for the given URI.

Parameters

| Parameter | Type | Description | | ------ | ------ | ------ | | uri | string | The MongoDB connection URI | | poolSize? | number | Maximum connection pool size | | closeDelay? | number | Delay in milliseconds before closing idle connections |

Returns

MongoClientWrapper

A cached or newly created wrapper instance


connect()

connect(): Promise<MongoClient>;

Connects to MongoDB and returns the underlying MongoClient.

Returns

Promise<MongoClient>


disconnect()

disconnect(): Promise<number>;

Disconnects from MongoDB.

Returns

Promise<number>


initiateClose()

initiateClose(): Promise<void>;

Initiates a graceful close of the connection.

Returns

Promise<void>

interfaces

BaseMongoSdkPrivateConfig

@xylabs/mongo


Private configuration options for the Mongo SDK containing connection credentials.

Properties

| Property | Type | Description | | ------ | ------ | ------ | | dbConnectionString? | string | A full MongoDB connection string, used instead of individual credential fields. | | dbDomain? | string | The MongoDB Atlas cluster domain. | | dbName? | string | The database name to connect to. | | dbPassword? | string | The password for MongoDB authentication. | | dbUserName? | string | The username for MongoDB authentication. |

BaseMongoSdkPublicConfig

@xylabs/mongo


Public configuration options for the Mongo SDK, safe to expose to clients.

Properties

| Property | Type | Description | | ------ | ------ | ------ | | closeDelay? | number | Delay in milliseconds before closing idle connections. | | collection | string | The MongoDB collection name to operate on. | | maxPoolSize? | number | Maximum number of connections in the connection pool. |

type-aliases

BaseMongoSdkConfig

@xylabs/mongo


type BaseMongoSdkConfig = BaseMongoSdkPublicConfig & BaseMongoSdkPrivateConfig;

Combined public and private MongoDB SDK configuration.

Part of sdk-js

Maintainers

License

See the LICENSE file for license details

Credits

Made with 🔥 and ❄️ by XYLabs