DevExtreme Angular - Query API
The Query is an object that provides a chainable interface for making data queries.
To create a Query, call the query(array) or query(url, queryOptions) method, depending on the type of the storage you access. The Query supports method chaining. This enables you to execute several methods in a single statement.
jQuery
var dataObjects = [
    { name: "Amelia", birthYear: 1991, gender: "female" },
    { name: "Benjamin", birthYear: 1983, gender: "male" },
    { name: "Daniela", birthYear: 1987, gender: "female" },
    { name: "Lee", birthYear: 1981, gender: "male" }
];
var processedArray = DevExpress.data.query(dataObjects)
    .filter([ "gender", "=", "female" ])
    .sortBy("birthYear")
    .select("name", "birthYear")
    .toArray();Angular
import Query from "devextreme/data/query";
// ...
export class AppComponent {
    constructor() {
        let dataObjects = [
            { name: "Amelia", birthYear: 1991, gender: "female" },
            { name: "Benjamin", birthYear: 1983, gender: "male" },
            { name: "Daniela", birthYear: 1987, gender: "female" },
            { name: "Lee", birthYear: 1981, gender: "male" }
        ];
        let processedArray = Query(dataObjects)
            .filter([ "gender", "=", "female" ])
            .sortBy("birthYear")
            .select("name", "birthYear")
            .toArray();
    }
}AngularJS
angular.module('DemoApp', ['dx'])
    .controller('DemoController', function DemoController($scope) {
        var dataObjects = [
            { name: "Amelia", birthYear: 1991, gender: "female" },
            { name: "Benjamin", birthYear: 1983, gender: "male" },
            { name: "Daniela", birthYear: 1987, gender: "female" },
            { name: "Lee", birthYear: 1981, gender: "male" }
        ];
        $scope.processedArray = DevExpress.data.query(dataObjects)
            .filter([ "gender", "=", "female" ])
            .sortBy("birthYear")
            .select("name", "birthYear")
            .toArray();
    });Knockout
var dataObjects = [
    { name: "Amelia", birthYear: 1991, gender: "female" },
    { name: "Benjamin", birthYear: 1983, gender: "male" },
    { name: "Daniela", birthYear: 1987, gender: "female" },
    { name: "Lee", birthYear: 1981, gender: "male" }
];
var viewModel = {
    processedArray: DevExpress.data.query(dataObjects)
        .filter([ "gender", "=", "female" ])
        .sortBy("birthYear")
        .select("name", "birthYear")
        .toArray()
};
ko.applyBindings(viewModel);Vue
<script>
import Query from 'devextreme/data/query';
const dataObjects = [
    { name: 'Amelia', birthYear: 1991, gender: 'female' },
    { name: 'Benjamin', birthYear: 1983, gender: 'male' },
    { name: 'Daniela', birthYear: 1987, gender: 'female' },
    { name: 'Lee', birthYear: 1981, gender: 'male' }
];
export default {
    mounted() {
        this.processedArray = Query(dataObjects)
            .filter([ 'gender', '=', 'female' ])
            .sortBy('birthYear')
            .select('name', 'birthYear')
            .toArray();
    },
    // ...
}
</script>React
// ...
import Query from 'devextreme/data/query';
const dataObjects = [
    { name: 'Amelia', birthYear: 1991, gender: 'female' },
    { name: 'Benjamin', birthYear: 1983, gender: 'male' },
    { name: 'Daniela', birthYear: 1987, gender: 'female' },
    { name: 'Lee', birthYear: 1981, gender: 'male' }
];
class App extends React.Component {
    constructor(props) {
        super(props);
        this.processedArray = Query(dataObjects)
            .filter([ 'gender', '=', 'female' ])
            .sortBy('birthYear')
            .select('name', 'birthYear')
            .toArray();
    }
}
export default App;See Also
Methods
This section describes methods that perform operations on data associated with the Query.
| Name | Description | 
|---|---|
| aggregate(seed, step, finalize) | Calculates a custom summary for all data items. | 
| aggregate(step) | Calculates a custom summary for all data items. | 
| avg() | Calculates the average of all values. Applies only to numeric arrays. | 
| avg(getter) | Calculates the average of all values found using a getter. | 
| count() | Calculates the number of data items. | 
| enumerate() | Executes the Query. This is an asynchronous alternative to the toArray() method. | 
| filter(criteria) | Filters data items using a filter expression. | 
| filter(predicate) | Filters data items using a custom function. | 
| groupBy(getter) | Groups data items by the specified getter. | 
| max() | Calculates the maximum value. Applies only to numeric arrays. | 
| max(getter) | Calculates the maximum of all values found using a getter. | 
| min() | Calculates the minimum value. Applies only to numeric arrays. | 
| min(getter) | Calculates the minumum of all values found using a getter. | 
| select(getter) | Selects individual fields from data objects. | 
| slice(skip, take) | Gets a specified number of data items starting from a given index. | 
| sortBy(getter) | Sorts data items by the specified getter in ascending order. | 
| sortBy(getter, desc) | Sorts data items by the specified getter in the specified sorting order. | 
| sum() | Calculates the sum of all values. | 
| sum(getter) | Calculates the sum of all values found using a getter. | 
| thenBy(getter) | Sorts data items by one more getter in ascending order. | 
| thenBy(getter, desc) | Sorts data items by one more getter in the specified sorting order. | 
| toArray() | Gets data items associated with the Query. This is a synchronous alternative to the enumerate() method. | 
If you have technical questions, please create a support ticket in the DevExpress Support Center.