Create agg submodule and implement first five stage helpers

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Done
    • Priority: Unknown
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Go Drivers
    • Hide

      1. What would you like to communicate to the user about this feature?
      2. Would you like the user to see examples of the syntax and/or executable code and its output?
      3. Which versions of the driver/connector does this apply to?

      Show
      1. What would you like to communicate to the user about this feature? 2. Would you like the user to see examples of the syntax and/or executable code and its output? 3. Which versions of the driver/connector does this apply to?
    • None
    • None
    • None
    • None
    • None
    • None

      Context

      This milestone establishes the initial agg experimental module in mongodb-labs/mongo-go-driver-exp. Create a new submodule in the agg directory so the module path is github.com/mongodb-labs/mongo-go-driver-exp/agg. Copy the aggregation YAML definitions from the PHP/MQL specs, adapt them to what Go’s type system can practically support, and commit the modified YAML files to agg/spec. Then use those modified specs, plus the Go proof of concept, to implement the first five pipeline helpers: Match, Sort, Set, Project, and Group.

      Definition of done

      • The github.com/mongodb-labs/mongo-go-driver-exp/agg submodule exists.
      • The aggregation YAML definitions have been copied and the modified Go-friendly specs are committed under agg/spec.
      • First-pass implementations for Match, Sort, Set, Project, and Group are in place.
      • The initial aggregation expression/operator set is implemented for this milestone: Eq, Ne, Gt, Gte, Lt, Lte, In, And, Or, Not, Add, Subtract, Multiply, Divide, Concat, IfNull, FilterArray, and ArrayToObject.
      • A basic query operator surface exists for use with Match: Field, Eq, Gt, Gte, Lt, Lte, And, and Or.
      • Basic expressions are implemented

            Assignee:
            Lin Borland
            Reporter:
            Lin Borland
            None
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: