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 {
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 {
constructor(giveme) {
super(giveme, "<collectionName>");
};
async httpFind(context, stream, headers) {
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