@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.