@omegalabs/repo-mongodb v1.0.0
Mongo Repository
This module is intended for use with the @omegalabs/repo-core package. When used with the repo-core package this module provides an implementation of the repo-core interface for a MongoDB database.
Installation and Use
- Do an
npm install @omegalabs/repo-mongodb(shortened asrepo-mongodbbelow) to install the package on your local machine. - Require the package in your project along with the
@omegalabs/repo-corepackage. - Instantiate the
repo-mongodbpackage with options (see Configuration Options below.) - Instantiate the
repo-corepackage, providing therepo-mongodbpackage as an argument.
For detailed explanation of the API see the repository-core documentation.
Tests
Note: Both Docker and Docker Compose are required to run the unit tests for the Monog Repository.
Run the unit tests for repo-mongodb with the npm test command.
The test suite will produce a report afer the test run is complete.
Example Usage
const config = {
datasourceConfig: {
databaseHost: 'mongo_db',
databasePassword: 'root',
databaseUsername: 'root',
databaseName: 'my_database'
}
};
const mongoRepo = require('@seanttaylor/omega-repo-mongo)(config);
const Repository = require('@seanttaylor/omega-repository-core)
const beerRepo = Repository(jsonRepo);
const beer = {
name: 'Indiana Pale Ale',
kind: 'ale'
}
const result = await beerRepo.add(beer, 'beers_collection');
/*{
error: null,
status: 'ok',
data: [
{
_id: '5e2f99c9fa38672ff424622b'
name: 'Indiana Pale Ale',
kind: 'ale',
_createdAt: '2020-01-28T02:19:33Z'
}
]
}*/
const searchResult = await beerRepo.findOne('5e2f99c9fa38672ff424622b', 'beers_table);
/*
Same output as above.
*/Configuration Options
Fields and acceptable values for the options object of repo-mongodb.
| option | type | description |
|---|---|---|
datasourceConfig | object | Configuration options for the datasource. |
Datasource Configuration
| option | type | default | description |
|---|---|---|---|
| databaseHost | string | mongo_db | Hostname to connect to the database. |
| datatbaseUsername | string | root | Username to connect to the database. |
| databasePassword | string | root | Password to connect to the database. |
| databasePort | integer | 27017 | Port to connect to the database. |
Additional MongoDB Configuration
Below are additional options that may be included on the repo configuration object, outside the datasourceConfig object. See the MongoDB documentation for more information on available options.
| option | type | default | description |
|---|---|---|---|
| useNewUrlParser | boolean | true | See mongodb docs: https://mongoosejs.com/docs/deprecations.html |
| autoReconnect | boolean | true | Reconnect on error. |
| reconnectTries | integer | 60 | Server attempt to reconnect #times |
| reconnectInterval | integer | 25000 | Server will wait # milliseconds between retries. |
| retryWrite | boolean | false | See mongodb docs: https://docs.mongodb.com/manual/core/retryable-writes/ |
| ssl | boolean | true disabled | Use ssl connection (needs to have a mongod server with ssl support) |
| sslValidate | boolean | true disabled | Validate mongod server certificate against ca (needs to have a mongod server with ssl support, 2.4 or higher) |
| useUnifiedTopology | boolean | false | See mongodb docs. |
5 years ago