[JAVA-3879] Builders for aggregation expressions Created: 03/Sep/15  Updated: 10/Mar/23  Resolved: 31/Jan/23

Status: Closed
Project: Java Driver
Component/s: Builders
Affects Version/s: None
Fix Version/s: 4.9.0

Type: Epic Priority: Major - P3
Reporter: Jeffrey Yemin Assignee: Maxim Katcharov
Resolution: Done Votes: 20
Labels: roadmap, rp-track, size-large
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
is depended on by COMPASS-4695 Bring back builders in export to lang... Needs Triage
is depended on by JAVA-4384 allow limit in $filter expression Closed
Documented
Duplicate
is duplicated by JAVA-3294 Add $arrayElemAt helper Closed
Gantt Dependency
Related
related to DRIVERS-2499 Common Aggregation Framework Backlog
related to JAVA-4102 Add $redact support in Java driver Backlog
Quarter: FY23Q4
Case:
Documentation Changes: Needed
Documentation Changes Summary: See https://jira.mongodb.org/browse/DOCSP-27390.
Start date:
End date:
Calendar Time: 14 weeks, 2 days
Scope Cost Estimate: 7
Cost to Date: 12
Final Cost Estimate: 13
Cost Threshold %: 100
Detailed Project Statuses:

Engineer(s): Maxim

Summary: Add builders for the aggregation pipeline, including support for stages, accumulators, query filters, and expressions.

2023-01-20: No change to target end date
Status Update:

  • Wrapping up reviews for doc work. Everything else is done!

2023-01-06: Updated target end date to 2023-01-27

  • Working through code reviews and documentation

2022-12-22: Updated target end date to 2023-01-13

  • Conversion, Document, Reduce, Map, Special expressions along with testing and integrating with existing API in review
  • Javadocs for expression API and integration testing with existing API in-progress
  • Added more time for reviews and remaining work

2022-12-09: Updated target end date to 2022-12-16
Status Update:

  • Conversion, Document, Switch, Reduce, Map expressions in review
  • Javadocs for expression API and integration testing with existing API in-progress

Engineer(s): Maxim

Summary: Add builders for the aggregation pipeline, including support for stages, accumulators, query filters, and expressions.

2022-11-22: Updated target end date to 2022-12-09
Status Update:

  • Conversion, Document, Array/Set, Arithmetic, Date expressions in review
  • Switch and reduce in progress

2022-11-11:
Status Update:

  • String, String, and Arithmetic expressions in review
  • Boolean and initial array expressions merged

Rationale for delays and Risks:

  • NA

2022-10-28: Setting initial target end date to 2022-12-02
Status Update:

  • Boolean and initial array expressions in review
  • Document expressions in progress
  • Special and comparison expressions up next

Rationale for delays:

  • No delays

Risks:

  • No risks


 Description   
Epic Summary

Summary

Add builders for the aggregation pipeline, including support for stages, accumulators, query filters, and expressions.

Cast of Characters

Lead:
Author:

Documentation

Scope Document
[Technical Design Document|]

List of Expressions (ranked by usage)



 Comments   
Comment by Ashni Mehta [ 13/Feb/23 ]

Hi there, this feature was delivered in the 4.9 release of the Java Driver on Feb 10, 2023. Please have a look at the release notes and give this feature a try! Let me know what you think.

https://www.mongodb.com/community/forums/t/mongodb-java-driver-4-9-0-released/213117

Comment by Githook User [ 31/Jan/23 ]

Author:

{'name': 'Maxim Katcharov', 'email': 'maxim.katcharov@mongodb.com', 'username': 'katcharov'}

Message: Add MQL Expressions (#1032)

  • Implement boolean expressions (#1025)

JAVA-4779

  • Implement filter, map, reduce (#1031)

JAVA-4781

  • Implement eq, ne, gt, gte, lt, lte (#1033)

JAVA-4784

  • Implement string expressions (#1036)

JAVA-4801

  • Implement arithmetic expressions (#1037)

Implement arithmetic expressions (from top 50, and others)

JAVA-4803

  • Implement array expressions (#1043)

JAVA-4805

  • Implement date expressions (#1045)

JAVA-4804

  • Implement conversion/type expressions (#1050)

JAVA-4802

  • Implement document expressions (#1052)

JAVA-4782

  • Replace reduce with individual reductions (#1053)

JAVA-4814

  • Implement map expressions (#1054)

JAVA-4817

  • Implement switch expression (#1055)

JAVA-4813

  • Test expressions in context (#1057)

JAVA-4820

  • Add javadoc for boolean, date, number, integer, and expression (#1059)

JAVA-4799

  • Update and add documentation (#1059)
  • Fix, tests

JAVA-4799

  • Add `@MqlUnchecked` and a few usage examples (#1059)

JAVA-4799

  • Add has to document, add tests (#1070)

JAVA-4799

  • Add javadocs for remaining classes (#1070)

JAVA-4799

  • 5.2 annotations (#1070)

JAVA-4799

  • 5.0 annotations (#1070)

JAVA-4799

  • 4.4 annotations (#1070)

JAVA-4799

  • 4.2 annotations (#1070)

JAVA-4799

  • 4.0 annotations (#1070)

JAVA-4799

  • Update and add documentation, add tests, fix minor issues (#1070)

Rename extractBsonValue

Fix access modifiers

Remove excess comments

Update docs

Fix: behaviour of get

Add notNull to API, add notNullApi test

Fix docs/annotations, tests

Fix docs, annotations, since

Fix docs

Revert external

Add missing MqlUnchecked

Fix missing null checks

Checkstyle

JAVA-4799

  • Rename to Mql (automated) (#1073)

JAVA-3879

  • Rename methods (automated) (#1073)

JAVA-3879

  • Update naming, terms, and missing checks and annotations (#1073)

JAVA-3879

---------

Co-authored-by: Valentin Kovalenko <valentin.kovalenko@mongodb.com>
Branch: master
https://github.com/mongodb/mongo-java-driver/commit/ff8334189bb44fc33e5e3ce89cb4b07090272b3a

Comment by Jeffrey Yemin [ 29/Oct/20 ]

I started a POC here: https://github.com/mongodb/mongo-java-driver/pull/605

Generated at Thu Feb 08 09:00:40 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.