Details
-
Improvement
-
Resolution: Unresolved
-
Major - P3
-
None
-
None
-
None
-
Replication
Description
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.
Attachments
Issue Links
- 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
-