damless-mongo
Mongo service for damless.
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