[JAVA-5050] Support for $out to Time-series collections Created: 03/Jul/23  Updated: 07/Dec/23  Resolved: 07/Dec/23

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

Type: New Feature Priority: Major - P3
Reporter: PM Bot Assignee: Unassigned
Resolution: Works as Designed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Issue split
Server Compat: 7.0, 7.1
Quarter: FY24Q3
Upstream Changes Summary:

DRIVERS-2558:
These changes add a new option ("timeseries") for the $out aggregation stage. $out will now accept a "timeseries" option that takes in a time-series specification. $out will create a new time-series collection in the specified namespace if an existing collection does not exist in that namespace. If a collection exists in that namespace, $out will do the following:

1. If the collection is not a time-series collection, $out will error.
2. If the collection is a time-series collection $out will error if the timeField and the metaField have been changed by the user. The time-series specification inputted in $out must match the existing time-series collection.
3. If the collection is a time-series collection and matches the specification passed in by the user $out will replace that existing time-series collection with the documents in the aggregation stage.

These changes are not supported for sharded collections. There is currently follow-up work tracked by SERVER-74061 currently in progress to add support for secondaries and sharded clusters.

For more information the syntax doc can be found at this link: https://docs.google.com/document/d/15lAB2yQ8e_fR4RnihjsJMotEaIiTe9q_qk-D509DWkM/edit?usp=sharing

Documentation Changes Summary:

1. What would you like to communicate to the user about this feature?
2. Would you like the user to see examples of the syntax and/or executable code and its output?
3. Which versions of the driver/connector does this apply to?


 Description   

This ticket was split from DRIVERS-2558, please see that ticket for a detailed description.



 Comments   
Comment by Jeffrey Yemin [ 07/Dec/23 ]

The driver already has a builder for the $out stage that takes a BSON document, so it can already be used to specify time series-related behavior of the out collection as specified in https://www.mongodb.com/docs/v7.1/reference/operator/aggregation/out/ (for 7.1 rapid release). No additional logic is needed in the driver.

ashni.mehta@mongodb.com the only thing I can suggest here is a docs ticket to show how to use it.

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