https://github.com/gcsboss/mongo-redux
A thin wrapper around main mongo functionality with simple return values and async/await support.
https://github.com/gcsboss/mongo-redux
Last synced: 10 months ago
JSON representation
A thin wrapper around main mongo functionality with simple return values and async/await support.
- Host: GitHub
- URL: https://github.com/gcsboss/mongo-redux
- Owner: GCSBOSS
- License: mit
- Created: 2019-05-06T04:38:36.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2021-05-08T23:14:51.000Z (almost 5 years ago)
- Last Synced: 2025-06-19T00:11:18.221Z (10 months ago)
- Language: JavaScript
- Size: 18.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
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
1. Add to your project with: `npm i mongo-redux`.
2. In your code:
```js
// 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:
1. [Open an issue](https://gitlab.com/GCSBOSS/mongo-redux/issues/new).
2. Describe what happened and how.
3. 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:
1. [Open an issue](https://gitlab.com/GCSBOSS/mongo-redux/issues/new).
2. Describe your ideas.
3. 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](https://gitlab.com/GCSBOSS/mongo-redux/merge_requests/new) so we can collaborate effectively.