damless-mongo
v1.0.4
Published
Mongo client for damless
Downloads
56
Maintainers
Readme
damless-mongo
Features
REST api
Method | Param | DamLess method --- | --- | --- GET | /:id | httpFindOne GET | /? | httpFind POST | | httpInsertOne PUT | /:id | httpSaveOne PATCH | /:id | httpUpdateOne with $set DELETE | /:id | httpDeleteOne
Create an api
const { Http } = require("damless-mongo");
class Api extends Http {
//giveme is the dependency injection service used by damless
constructor(giveme) {
super(giveme, "<collectionName>");
};
...
}
Http methods
Method | Description --- | --- httpFindOne | httpFind | httpInsertOne | httpInsertMany | httpSaveOne | httpUpdateOne | httpSaveMany | httpUpdateMany | httpDeleteOne | httpDeleteMany | httpCount | httpAggregate |
Stream methods
Method | Description --- | --- saveOne | save | insertOne | insert | updateOne | update | replaceOne | deleteOne | delete | findOne | find | aggregate | count |
Mongo api methods
Method | Description --- | --- mongoInsertOne | mongoInsertMany | mongoAggregate | mongoBulkWrite | mongoCreateIndex | mongoCreateIndexes | mongoCount | mongoCreateIndexes | mongoDeleteOne | mongoDeleteMany | mongoDistinct | mongoDrop | mongoDropIfExists | mongoDropIndex | mongoDropIndexes | mongoFindOne | mongoFind | mongoFindOneAndDelete | mongoFindOneAndReplace | mongoFindOneAndUpdate | mongoGeoHaystackSearch | mongoGeoNear | mongoGroup | mongoMapReduce | mongoReplaceOne | mongoSave | mongoUpdateOne | mongoUpdateMany |
Cutomize your api
const { Http } = require("damless-mongo");
const { promisify } = require("util");
const stream = require("stream");
const pipeline = promisify(stream.pipeline);
class Api extends Http {
// giveme is the dependency injection service used by damless
constructor(giveme) {
super(giveme, "<collectionName>");
};
// override the default httpFind an use Crud primitives
async httpFind(context, stream, headers) {
// get a mongo cursor
const cursor = this.findWords(context.query.q);
await pipeline(
cursor,
stream
);
}
}
Add the mongo connection string in damless.json
{
"mongo": {
"connectionString": "mongodb://localhost:27017/database"
},
}
Inject damless-mongo service
{
"services": [
{ "name": "mongo", "location": "damless-mongo" }
]
}
Or in javascript
const DamLess = require("damless");
const damless = new DamLess();
damless.inject("mongo", "damless-mongo");
Installation
$ npm install damless-mongo
Test
To run our tests, clone the damless-mongo repo and install the dependencies.
$ git clone https://github.com/BenoitClaveau/damless-mongo --depth 1
$ cd damless-mongo
$ npm install
$ mongod --dbpath ./data/db
$ node.exe "../node_modules/mocha/bin/mocha" tests