-
Type: Investigation
-
Resolution: Done
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
Not Needed
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
Description of Linked Ticket
We should accept the time-series spec in the $out stage and use that to create a time-series collection as part of the DocumentSourceOut stage. This should remove any restriction prohibiting $out from targeting an unsharded time-series collection, and add tests that verify the correct behavior. We don't need to support sharded time-series collection as part of this ticket.
- depends on
-
SERVER-72687 Support for $out to Time-series collections
- Closed
- related to
-
COMPASS-6592 Update $out stage operator template to show time series option (and db/col)
- Closed