-
Type: Improvement
-
Resolution: Unresolved
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
Replication
The update subsystem enforces constraints on the document structure using different C++ code than the insert command. This has led to now-fixed bugs where a document could have had
- multiple top-level _id fields (
SERVER-75879) or - _id field as an embedded object containing a $-prefixed field name at any level (
SERVER-75517,SERVER-75880).
Additional validation has been introduced into the update subsystem in an upcoming MongoDB version to prevent further introduction of these malformed documents. It would be useful to provide customers a means to identify and remediate any existing documents. This is because future versions of the server may not react in a well-defined way to these malformed documents. Adding checks on the _id field to both the validate and dbCheck commands would make it possible for customers to sooner learn if they are impacted and address the undesirable behavior in their application.
- is related to
-
SERVER-75517 illegal format of `_id` possible via upsert
- Closed
-
SERVER-75879 Upsert permits document to contain multiple _id fields
- Closed
-
SERVER-75880 Upsert permits _id values containing $-prefixed paths which cannot be inserted using insert command
- Closed