# Complex Query

`AggregateClient` is used to execute complex queries.

## Example

```java
@AllArgsConstructor
@JsonBody
@RestController
public class UserAggregateController {

    private AggregateClient aggregateClient;

    @GetMapping("user/queryCountOfEachLevel")
    public List<UserLevelCountView> queryCountOfEachLevel(UserLevelHaving query) {
        return aggregateClient.query(UserLevelCountView.class, query);
    }

}
```

Refer [View Object](https://query.docs.doyto.win/object-concepts/view-object) to learn how to define a view object.
