Skip to content

Add support for $expr operator #3790

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

Closed

Conversation

divyajnu08
Copy link
Contributor

  • You have read the Spring Data contribution guidelines.
  • You use the code formatters provided here and have them applied to your changes. Don’t submit any formatting related changes.
  • You submit test cases (unit or integration tests) that back your changes.
  • You added yourself as author in the headers of the classes you touched. Amend the date range in the Apache license header if needed. For new types, add the license header (copy from another file and set the current year only).

@spring-projects-issues spring-projects-issues added the status: waiting-for-triage An issue we've not yet triaged label Aug 29, 2021
@divyajnu08 divyajnu08 changed the title Feature/datamongo 3729 Allow $stdDevPop & stdDevSamp operators to be used in $project, $addFields, $set, ... aggregation stages. Aug 29, 2021
@mp911de
Copy link
Member

mp911de commented Aug 30, 2021

Thanks for submitting a pull request. We have dedicated operator classes (e.g. ArithmeticOperators) to build AggregationExpression which can be used with $project. For example:

Aggregation.addFields().addField("foo")
		.withValue(ArithmeticOperators.valueOf("otherField").stdDevPop()).build();

Aggregation.project().and(ArithmeticOperators.valueOf("otherField").stdDevPop()).as("otherFieldStdDevPop"));

Accepting AggregationExpression and field references in stages that do not accept these yet makes still sense. I suggest removing stdDevPop and stdDevSamp operators from this pull request as we have support for these already and updating this PR to accept AggregationExpression in stages that do not accept these yet.

@divyajnu08
Copy link
Contributor Author

Hi Mark

I have removed the operators and added unit tests using ArithmeticOperators.
I think all operators support this operator.
Also kindly check the newly added $expr operator and changes in match operator if its correct.

Thanks

@mp911de mp911de changed the title Allow $stdDevPop & stdDevSamp operators to be used in $project, $addFields, $set, ... aggregation stages. Add support for $expr operator Sep 6, 2021
@mp911de mp911de closed this in e71ec87 Sep 6, 2021
mp911de added a commit that referenced this pull request Sep 6, 2021
Add license headers. Update Javadoc, author, and since tags. Add tests. Add toCriteriaDefinition method.

See #3790
@mp911de mp911de added this to the 3.3 M3 (2021.1.0) milestone Sep 6, 2021
@mp911de
Copy link
Member

mp911de commented Sep 6, 2021

Thank you for your contribution. That's merged and polished now. We need to follow up with #3587 to enable a better usage of $expr with our Query infrastructure.

@mp911de mp911de added type: enhancement A general enhancement and removed status: waiting-for-triage An issue we've not yet triaged labels Sep 6, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: enhancement A general enhancement
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants