Nested Compound search operator not supported by aggregation builder

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Unresolved
    • Priority: Minor - P4
    • None
    • Affects Version/s: doctrine-2.12.0
    • Component/s: Doctrine
    • None
    • None
    • PHP Drivers
    • None
    • None
    • None
    • None
    • None
    • None

      The following example cannot be implemented because "compound" is not available as compounded operator.

      https://www.mongodb.com/docs/atlas/atlas-search/compound/#nested-example

      db.fruit.aggregate([
        {
          $search: {
            "compound": {
              "should": [
                {
                  "text": {
                    "query": "apple",
                    "path": "type"
                  }
                },
                {
                  "compound": {
                    "must": [
                      {
                        "text": {
                          "query": "organic",
                          "path": "category"
                        }
                      },
                      {
                        "equals": {
                          "value": true,
                          "path": "in_stock"
                        }
                      }
                    ]
                  }
                }
              ],
              "minimumShouldMatch": 1
            }
          }
        }
      ]) 

      There is a technical limitation with fluent API of the aggregation builder because, in a CompoundedCompound, when `->must()` is called, it refers to the child compound. There is no method to access the parent compound.

            Assignee:
            Unassigned
            Reporter:
            Jérôme Tamarelle
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: