mongodash
v1.6.0
Published
An utility library delivering super-useful and super-simple tools using MongoDB
Downloads
201
Maintainers
Readme
A modern JavaScript & Typescript MongoDB-based utility library allowing to develop common app requirements incredible simple.
See full documentation on http://mongodash.com
Installation:
npm install mongodash
Initialization
const mongodash = require('mongodash');
await mongodash.init({
uri: 'mongodb://mongodb0.example.com:27017/myDatabase'
});
See more initialization options here.
cronTask
const { cronTask } = require('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
const { 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
const { withTransaction, getCollection } = require('mongodash');
const createdDocuments = await withTransaction(async (session) => {
const myDocument1 = { value: 1 };
const myDocument2 = { value: 2 };
const collection = getCollection('myCollection');
await testCollection.insertOne(myDocument1, { session });
await testCollection.insertOne(myDocument2, { session });
return [myDocument1, myDocument2];
});
See detailed description here.
getCollection
const { getCollection } = require('mongodash');
const myCollection = getCollection('myCollectionName');
See detailed description here.
getMongoClient
const { getMongoClient } = require('mongodash');
const mongoClient = getMongoClient();
See detailed description here.