# Grouping

Thanks to the `group` keyword in the search JSON, it is possible to group by some parameters of the default data models. This keyword is optional.

Quick grouping example:

```json {hl_lines=["4-11"]}
{
  "filter": {},
  // Group sub-document
  "group": {
    // List of data streams to group by
    "parameters": [
      {
        "name": "provision.device.model"
      }
    ]
  }
}
```

{{% expand title="List of data streams with grouping support" %}}

- All enum values
- `device.model`
- `device.software`
- `device.communicationModules[].model`
- `device.communicationModules[].software`
- `device.communicationModules[].subscriber.model`
- `device.communicationModules[].subscriber.software`
- `device.communicationModules[].subscription.mobile.homePlmn`
- `device.communicationModules[].subscription.mobile.homeOperator`
- `device.communicationModules[].subscription.mobile.vlr.plmn`
- `device.communicationModules[].subscription.mobile.vlr.operatorName`
- `device.communicationModules[].subscription.mobile.vlr.countryName`
- `device.communicationModules[].subscription.mobile.vlr.countryCode`
- `device.communicationModules[].subscription.mobile.msc.plmn`
- `device.communicationModules[].subscription.mobile.msc.operatorName`
- `device.communicationModules[].subscription.mobile.msc.countryName`
- `device.communicationModules[].subscription.mobile.msc.countryCode`
- `device.communicationModules[].subscription.mobile.sgsn.plmnd`
- `device.communicationModules[].subscription.mobile.sgsn.operatorName`
- `device.communicationModules[].subscription.mobile.sgsn.countryName`
- `device.communicationModules[].subscription.mobile.sgsn.countryCode`
- `device.communicationModules[].subscription.mobile.ggsn.plmn`
- `device.communicationModules[].subscription.mobile.ggsn.operatorName`
- `device.communicationModules[].subscription.mobile.ggsn.countryName`
- `device.communicationModules[].subscription.mobile.ggsn.countryCode`
- `device.communicationModules[].subscription.mobile.registeredPlmn`
- `device.communicationModules[].subscription.mobile.registeredOperator`
- `provision.device.model`
- `provision.device.software`
- `provision.device.communicationModules[].model`
- `provision.device.communicationModules[].software`
- `provision.device.communicationModules[].subscriber.model`
- `provision.device.communicationModules[].subscriber.software`
- `provision.device.communicationModules[].subscription.mobile.homeOperator`
- `provision.device.communicationModules[].subscription.mobile.registeredOperator`
- `provision.administration.channel`
- `provision.administration.organization`
- `provision.administration.serviceGroup`
- `provision.administration.plan`

{{% /expand %}}

## Group examples

Click on any of the following links to expand the contents.

{{% expand title="Group Search Request example" %}}

```json
{
  "filter": {
    "and": [
      {
        "like": {
          "provision.administration.organization": "battery_organization"
        }
      }
    ]
  },
  "group": {
    "parameters": [
      {
        "name": "provision.device.model"
      }
    ]
  }
}
```

{{% /expand %}}

{{% expand title="Group Search Response example" %}}

```json
{
  "summary": {
    "count": 6,
    "summaryGroup": [
      {
        "provision.administration.organization": {
          "count": 6,
          "list": [
            {
              "count": 6,
              "name": "battery_organization"
            }
          ]
        }
      },
      {
        "provision.administration.channel": {
          "count": 6,
          "list": [
            {
              "count": 6,
              "name": "battery_channel"
            }
          ]
        }
      },
      {
        "provision.device.model.name": {
          "count": 6,
          "list": [
            {
              "count": 1,
              "name": "model_name-7"
            },
            {
              "count": 2,
              "name": "model_name-4"
            },
            {
              "count": 1,
              "name": "model_name-10"
            },
            {
              "count": 1,
              "name": "model_name-5"
            },
            {
              "count": 1,
              "name": "model_name-11"
            }
          ]
        }
      }
    ]
  }
}
```

{{% /expand %}}
