Socket
Socket
Sign inDemoInstall

mongo-simple-aggregation-builder

Package Overview
Dependencies
39
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.0.3 to 1.0.4

2

package.json
{
"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/
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc