monk-database-helper
v0.1.1
Published
A helper for working with mongo db using monk.
Readme
Monk Database Helper
A helper for working with mongo db using monk.
This helper is designed to hide the complexity of simple CRUD operations on mongo collections. I opted to go with a schema model so the helper can track what properties need to be set with $set, and what identifier to use for an entity. (Usually _id, but there are reasons why you might want to use a different identifier)
Install
npm install monk-database-helper --saveRunning locally
Get the source by cloning the repository:
$ git clone https://github.com/SamGraber/MonkDatabaseHelperNavigate to the project folder and install the dependencies via:
$ npm installThe following script will build the typescript files and run the unit tests against them:
$ npm testUsage
Typescript:
import { DatabaseService, ISchema } from 'monk-database-helper';
let schema: ISchema = {
identifier: 'id',
properties: ['prop1', 'prop2'],
};
let database = new DatabaseService<MyType>(monkDatabase.get('myCollection'), schema);Javascript:
var DatabaseService = require('monk-database-helper').DatabaseService;
var schema = {
identifier: 'id',
properties: ['prop1', 'prop2'],
};
var database = new DatabaseService(monkDatabase.get('myCollection'), schema);getList<TSearchModel>(searchModel?: TSearchModel): Promise<TDataType[]>
Make a simple find call and return the results as a promise. Search model is passed directly to the find function.
getDetail(id: any): Promise<TDataType>
Make a findOne call to get a specific entity. The helper uses the identifier field in the schema as the key for the search model.
Example:
helperInstance.schema = { identifier: 'id' };
helperInstance.getDetail(11);
// results in
findOne({ 'id': 11 })update(model: TDataType): Promise<TDataType>
Makes an update call for the specified entity. The query is constructed the same as for a getDetail request. All properties listed in the schema will be updated with $set values in the update request.
Example:
helperInstance.schema = {
identifier: 'id',
properties: ['prop1', 'prop2'],
};
let model = {
id: 11,
prop1: 'value',
prop2: 52,
};
helperInstance.update(model);
// results in
update({ 'id': 11 }, {
'$set': { 'prop1': 'value' },
'$set': { 'prop2': 52 },
};create(model: TDataType): Promise<TDataType>
Makes an insert request to create a new model in the collection. The model is passed directly to the insert command.
Example:
let model = {
id: 11,
prop1: 'value',
prop2: 52,
};
helperInstance.create(model);
// results in
insert({
'prop1': 'value' },
'prop2': 52 },
};