Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(NODE-3639): add a general stage to the aggregation pipeline builder #4079

Merged
merged 1 commit into from
Apr 18, 2024

Conversation

prenaissance
Copy link
Contributor

@prenaissance prenaissance commented Apr 16, 2024

Description

What is changing?

add a general stage method to the aggregation pipeline builder

Is there new documentation needed for these changes?

What is the motivation for this change?

This feature would allow arbitrary aggregation stages to be used builder style with the aggregation cursor, simplifying the syntax needed to use the stages otherwise. Currently only the most common stages have explicit APIs available for chaining and adding an explicit API for every possible aggregation stage would not be maintainable.

This change will also help making progress in other aggregation pipeline typification features, as the aggregation pipeline builder can be used for both stages which have explicit builder helpers and those which do not.

Release Highlight

Aggregation pipelines can now add stages manually.

When creating an aggregation pipeline cursor, a new generic method addStage() has been added in the fluid API for users to add stages in a general manner.

const documents = await users.aggregate().addStage({ $project: { name: true } }).toArray();

Thank you @prenaissance for contributing this feature!

Double check the following

  • Ran npm run check:lint script
  • Self-review completed using the steps outlined here
  • PR title follows the correct format: type(NODE-xxxx)[!]: description
    • Example: feat(NODE-1234)!: rewriting everything in coffeescript
  • Changes are covered by tests
  • New TODOs have a related JIRA ticket

@durran durran self-assigned this Apr 18, 2024
@durran durran added the Primary Review In Review with primary reviewer, not yet ready for team's eyes label Apr 18, 2024
@durran durran added Team Review Needs review from team and removed Primary Review In Review with primary reviewer, not yet ready for team's eyes labels Apr 18, 2024
Copy link
Contributor

@nbbeeken nbbeeken left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks so much for this contribution!

@durran durran merged commit 8fca1aa into mongodb:main Apr 18, 2024
17 of 26 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Team Review Needs review from team
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants