mongo-simple-aggregation-builder
Advanced tools
Comparing version 1.0.3 to 1.0.4
{ | ||
"name": "mongo-simple-aggregation-builder", | ||
"version": "1.0.3", | ||
"version": "1.0.4", | ||
"description": "", | ||
@@ -5,0 +5,0 @@ "main": "dist/index.js", |
@@ -18,2 +18,3 @@ # mongo-simple-aggregation-builder | ||
- [Filter][Filter] | ||
- [Unset][Unset] | ||
@@ -39,5 +40,5 @@ ## Install | ||
const groupStage = new GroupBuilder('id') | ||
const groupStage = new GroupBuilder('_id') | ||
.count('total') | ||
.sum('aggregated_field', 'aggregated_val'); | ||
.sum('aggregated_field', 'calculated_field'); | ||
@@ -49,2 +50,4 @@ const pipeline = new Builder() | ||
.build(); | ||
const response = await db.<collection>.aggregate(pipeline); | ||
``` | ||
@@ -54,12 +57,49 @@ | ||
### Project Builder | ||
```ts | ||
test('project Builder', () => { | ||
const expected = { | ||
field_name: 1, | ||
calculated_field: '$another_field', | ||
remove_field: 0, | ||
}; | ||
const recieved = new ProjectBuilder() | ||
.includeField('field_name') | ||
.addField('calculated_field', '$another_field') | ||
.excludeField('remove_field'); | ||
expect(recieved).toEqual(expected); | ||
}); | ||
``` | ||
### Group Builder | ||
```ts | ||
test('group Builder', () => { | ||
const expected = { | ||
_id: 'groupName', | ||
aggregated_field: { $sum: '$aggregated_val' }, | ||
}; | ||
const recieved = new GroupBuilder('groupName').sum('aggregated_field', 'aggregated_val'); | ||
expect(recieved).toEqual(expected); | ||
}); | ||
``` | ||
## Tests | ||
### filter | ||
```ts | ||
test('filter and return first from db array', () => { | ||
const expected = { | ||
mysql_db: { | ||
$first: { | ||
$filter: { input: '$db_list', as: 'db', cond: { $eq: ['$$db.name', 'mysql'] } }, | ||
}, | ||
}, | ||
}; | ||
Run unit tests: | ||
const mysqlDb = new Comparison(Operator.EQ, '$$db.name', 'mysql'); | ||
const filterSourcesArray = new Filter('$db_list', 'db', mysqlDb); | ||
const received = new ProjectBuilder().addField('mysql_db', filterSourcesArray.first()); | ||
expect(JSON.stringify(received)).toEqual(JSON.stringify(expected)); | ||
}); | ||
``` | ||
npm test | ||
``` | ||
[Project]: https://www.mongodb.com/docs/manual/reference/operator/aggregation/project/ | ||
@@ -69,2 +109,3 @@ [Facet]: https://www.mongodb.com/docs/manual/reference/operator/aggregation/facet/ | ||
[Unwind]: https://www.mongodb.com/docs/manual/reference/operator/aggregation/Unwind/ | ||
[Filter]: https://www.mongodb.com/docs/manual/reference/operator/aggregation/Filter/ | ||
[Filter]: https://www.mongodb.com/docs/manual/reference/operator/aggregation/Filter/ | ||
[Unset]: https://www.mongodb.com/docs/manual/reference/operator/aggregation/unset/ |
44422
106