Path
Low-level, type-unsafe pointer to a specific field in a document.
A path is a string pointer that identifies which field(s) are impacted by an operator.
For example, the following are valid paths:
"foo"
: targets the field "foo","foo.bar"
: targets the field "bar" which is part of the object "foo","arr.$5.bar"
: targets the field "bar" which is part of the item with index 5 in the array "arr".
This structure is a singly-linked list representing the entire path. Each segment is represented by PathSegment.