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 🙏

© 2024 – Pkg Stats / Ryan Hefner

@wistle/mongo

v1.0.1

Published

MongoDB connection management package for Wistle API

Downloads

11

Readme

@wistle/mongo

A MongoDB connection management package for the Wistle API service. This package provides a flexible way to manage multiple MongoDB connections, perform CRUD operations, and handle advanced MongoDB functionalities with ease.

Installation

To install the @wistle/mongo package, run:

npm install @wistle/mongo

Features

  • Multiple Database Connections: Manage multiple MongoDB connections based on different databases.
  • CRUD Operations: Perform standard CRUD operations with MongoDB.
  • Aggregation, Pagination, and More: Support for MongoDB aggregation, pagination, and other advanced queries.
  • Connection Management: Efficient management of MongoDB connections and automatic connection pooling.

Usage

Initialize Mongo Provider

First, you need to initialize the MongoProvider with your MongoDB configurations.

import { MongoProvider } from '@wistle/mongo';

// MongoDB configuration
const mongoDBConfig = {
  user: {
    url: 'mongodb://localhost:27017',
    dbName: 'wistleDB'
  }
};

// Initialize MongoProvider with multiple connections
await MongoProvider.addConnections(mongoDBConfig);

Using Mongo Service

Once the MongoProvider is initialized, you can use MongoService to perform MongoDB operations on a specific collection.

const mongoService = MongoProvider.getConnection('user');

// Example: Insert multiple users into the 'users' collection
const users = [
  { name: 'Alice', email: '[email protected]' },
  { name: 'Bob', email: '[email protected]' }
];
await mongoService.insertMany('users', users);

CRUD Operations

Insert Documents

const newUser = { name: 'Charlie', email: '[email protected]' };
await mongoService.insertOne('users', newUser);

Find All Documents

const allUsers = await mongoService.find('users');
console.log(allUsers);

Find by ID

const userId = 'someObjectIdHere';
const user = await mongoService.findById('users', userId);
console.log(user);

Update Document by ID

const userId = 'someObjectIdHere';
await mongoService.updateById('users', userId, { $set: { email: '[email protected]' } });

Delete Document by ID

const userId = 'someObjectIdHere';
await mongoService.deleteById('users', userId);

Aggregation

const aggregationPipeline = [
  { $match: { email: { $regex: /example.com$/ } } },
  { $group: { _id: null, total: { $sum: 1 } } }
];

const result = await mongoService.aggregate('users', aggregationPipeline);
console.log(result);

Pagination

const page = 1;
const limit = 10;
const users = await mongoService.paginate('users', {}, page, limit);
console.log(users);

Summery

With @wistle/mongo, managing multiple MongoDB connections, performing CRUD operations, and handling advanced functionalities like pagination and aggregation become simple and efficient. The package is designed to be flexible and extensible for your application’s needs.