mongo-redux
v0.2.1
Published
A thin wrapper around main mongo functionality with simple return values and async/await support.
Downloads
6
Maintainers
Readme
Mongo Redux
Mongo Redux is a thin wrapper around MongoDB basic functionality. Aims to provide simple functions on the async/await pattern for short and readable commands.
Get Started
- Add to your project with:
npm i mongo-redux
. - In your code:
// Import the module
const Mongo = require('mongo-redux');
// Instance a new client
let mongo = new Mongo();
// Start a connection
await mongo.connect('mongodb://127.0.0.1:27017');
// Use functionallity
// insert ( collection, data ) => Boolean
await mongo.insert('Test', { data: 'My Test Document' });
// exists ( collection, key, value ) => Boolean
await mongo.exists('Test', '_id', db.id(myId));
// get ( collection, key, value ) => Object | false
await mongo.get('Test', '_id', db.id(myId));
// find ( collection, query, projection ) => Array | false
await mongo.find('Test', { data: 'My Test Document' }, { _id: 0, name: 1 });
// delete ( collection, key, value ) => Boolean
await mongo.delete('Test', '_id', db.id(myId));
// update ( collection, key, value, updateSpec ) => Boolean
await mongo.update('Test', '_id', db.id(myId), { '$set': { name: 'New Name' } });
// replace ( collection, key, value, replacements ) => Boolean
await mongo.replace('Test', '_id', db.id(myId), { name: 'New Name' });
// push ( collection, key, value, arrayAndNewValue ) => Boolean
await mongo.push('Test', '_id', db.id(myId), { products: 'Cool Product 17' });
// pull ( collection, key, value, arrayAndTargetValue ) => Boolean
await mongo.pull('Test', '_id', db.id(myId), { products: 'Awful Product 16' });
// Create indexes
await mongo.index('Test', { email: 1 }, { unique: true });
// Access mongodb Database object
let info = await mongo.db.collectionsInfo();
// Close the connection
await mongo.close();
Reporting Bugs
If you have found any problems with this module, please:
- Open an issue.
- Describe what happened and how.
- Also in the issue text, reference the label
~bug
.
We will make sure to take a look when time allows us.
Proposing Features
If you wish to have that awesome feature or have any advice for us, please:
- Open an issue.
- Describe your ideas.
- Also in the issue text, reference the label
~proposal
.
Contributing
If you have spotted any enhancements to be made and is willing to get your hands dirty about it, fork us and submit your merge request so we can collaborate effectively.