Getting Started
Installation:
bash
npm install mongodashInitialization
typescript
import mongodash from 'mongodash';
await mongodash.init({
uri: 'mongodb://mongodb0.example.com:27017/myDatabase'
});See more initialization options here.
Reactive Tasks
typescript
import { reactiveTask } from 'mongodash';
// Trigger a task when a user is updated
await reactiveTask({
task: 'on-user-update',
collection: 'users',
handler: async (doc) => {
console.log('User changed:', doc._id);
}
});See detailed description here.
cronTask
typescript
import { cronTask } from 'mongodash';
await cronTask('my-task-id', '5m 20s', async () => {
console.log('Hurray the task is running!');
});See detailed description and more cron tasks methods here.
withLock
typescript
import { withLock } from 'mongodash';
await withLock('my-lock-id', async () => {
// it is quaranteed this callback will never run in parallel,
// so all race-conditions are solved
const data = await loadFromDatabase();
data.counter += 1;
await saveToDatabase(data);
});See detailed description here.
withTransaction
typescript
import { withTransaction, getCollection } from 'mongodash';
const createdDocuments = await withTransaction(async (session) => {
const myDocument1 = { value: 1 };
const myDocument2 = { value: 2 };
const collection = getCollection('myCollection');
await collection.insertOne(myDocument1, { session });
await collection.insertOne(myDocument2, { session });
return [myDocument1, myDocument2];
});See detailed description here.
getCollection
typescript
import { getCollection } from 'mongodash';
const myCollection = getCollection('myCollectionName');See detailed description here.
getMongoClient
typescript
import { getMongoClient } from 'mongodash';
const mongoClient = getMongoClient();See detailed description here.