This is a follow-up project to https://jira.mongodb.org/browse/MONGOID-5332, consistent mongoization/demongoization/evolution. Unlike 5332 which was scoped to minor changes in m/d/e, this epic is more ambitious in changing how Mongoid stores the attribute values and performs type conversions.
The starting point is storing attribute values in declared field type , MONGOID-5406. This is a significant change but it will bring with it a major simplification of Mongoid's architecture, improved data reliability (it will be easier to guard against invalid data, MONGOID-5382), new functionality (e.g. persistence of modified container attributes, MONGOID-2951) and potentially better performance due to elimination of repeated demongoization on field access.
Who is the affected end user?
Who are the stakeholders?
How does this affect the end user?
Are they blocked? Are they annoyed? Are they confused?
How likely is it that this problem or use case will occur?
Main path? Edge case?
If the problem does occur, what are the consequences and how severe are they?
Minor annoyance at a log message? Performance concern? Outage/unavailability? Failover can't complete?
Is this issue urgent?
Does this ticket have a required timeline? What is it?
Is this ticket required by a downstream team?
Needed by e.g. Atlas, Shell, Compass?
Is this ticket only for tests?
Is this ticket have any functional impact, or is it just test improvements?
Cast of Characters
Channels & Docs
Technical Design Document
- related to
MONGOID-5332 Comprehensive mongoization/demongoization/evolution of all types
MONGOID-4030 Typed array as field type