@arthurshen/mongodb-einfach
v1.0.5
Published
Simple TypeScript NodeJS/NextJS wrapper for MongoDB.
Downloads
41
Readme
EinfachMongoDbCollection Class
MongoDB Einfach
A simple TypeScript MongoDB wrapper for NodeJS/NextJS.
Version: 1.0.0
Table of Contents
Introduction
EinfachMongoDbCollection
is a simple MongoDB wrapper for NodeJS/NextJS
that I use for my basic CRUD operations. It is opinionated and only handles
a couple of operations that I use all the time. I expose a static Map of
MongoClients with the key being the URL for the server. This way you can
run more custom operations such as aggregations.
Installation
To use EinfachMongoDbCollection
, ensure you have MongoDB Node.js driver
installed:
npm install mongodb
# or
yarn add mongodb
Usage
import {
EinfachMongoDbCollection,
EinfachMongoDbDocument,
} from './path/to/EinfachMongoDbCollection';
// create your data structure which extends EinfachMongoDbDocument
type MyDocument = EinfachMongoDbDocument & {
name: string;
age: number;
};
// Initialize a new instance of EinfachMongoDbCollection
const collection = new EinfachMongoDbCollection<MyDocument>(
'mongodb://localhost:27017',
'myDatabase',
'myCollection'
);
// Example usage:
async function exampleUsage() {
// Insert a document
const insertedDoc = await collection.insert({
name: 'John Doe',
age: 30,
});
// Update a document
const updatedDoc = await collection.update({
_id: insertedDoc._id,
name: 'Jane Doe',
age: 35,
});
// Get a document by ID
const foundDoc = await collection.getById(insertedDoc._id.toString());
// Remove a document
const removed = await collection.remove(insertedDoc._id.toString());
}
exampleUsage();
API
Constructor
Creates an instance of EinfachMongoDbCollection
.
constructor(
serverUrl: string,
dbName: string,
collectionName: string,
clientOptions?: MongoClientOptions
)
- serverUrl: MongoDB server URL.
- dbName: Name of the database.
- collectionName: Name of the collection.
- clientOptions: Optional MongoDB client options.
Static Methods
clients()
Returns a Map of MongoDB clients for connection pooling. A MongoClient is added to the map ONLY AFTER an instance method has been called. It is not enough to just instantiate the instance, you MUST call a method in order for the MongoClient to be available
static clients(): Map<string, MongoClient>
Instance Methods
count()
Counts the number of documents in the collection.
async count(): Promise<number>
get()
Retrieves all documents from the collection.
async get(): Promise<T[]>
getById(id)
Retrieves a document by its ID.
async getById(id: string): Promise<T | null>
- id: String ID of the document.
insert(data)
Inserts a new document into the collection.
async insert(data: T): Promise<T>
- data: Document data to insert.
update(data)
Updates a document in the collection.
async update(data: T): Promise<T>
- data: Updated document data.
remove(id)
Removes a document from the collection by its ID.
async remove(id: string): Promise<boolean>
- id: String ID of the document to remove.
drop()
Drops (deletes) the collection.
async drop(): Promise<boolean>