Query Set And Batch
This abstract layer helps to manage a group of queries instead of working with each query independently. To initialize a new QuerySet instance, call the following method from the Connection instance:
let querySet = connection.querySet();
Supported methods
retrieve
Only retrieves initial data and immediately removes the query from the Event Delivery Service after the response:
querySet.retrieve("SELECT * FROM <YOUR-COLLECTION> WHERE key=<YOUR-KEY>", (event) => {
    console.log(`Message event: `, event);
})
| Argument | Type | Requred | Description | 
|---|---|---|---|
| query | string | Yes | SQL query to retrieve/listen | 
| resultListener | function | Yes | Info | 
| errorListenerOrOptions | function | QueryOptions | No | Info or set query options | 
| options | QueryOptions | No | Set query options. | 
retrieveAndSubscribe
Retrieves initial data and subscribes to changes in the query:
querySet.retrieveAndSubscribe("SELECT * FROM <YOUR-COLLECTION> WHERE key=<YOUR-KEY>", (event) => {
    console.log(`Message event: `, event);
})
| Argument | Type | Requred | Description | 
|---|---|---|---|
| query | string | Yes | SQL query to retrieve/listen | 
| resultListener | function | Yes | Info | 
| errorListenerOrOptions | function | QueryOptions | No | Info or set query options | 
| options | QueryOptions | No | Set query options. | 
subscribe
Only subscribes to changes in the query:
querySet.subscribe("SELECT * FROM <YOUR-COLLECTION> WHERE key=<YOUR-KEY>", (event) => {
    console.log(`Message event: `, event);
})
| Argument | Type | Requred | Description | 
|---|---|---|---|
| query | string | Yes | SQL query to retrieve/listen | 
| resultListener | function | Yes | Info | 
| errorListenerOrOptions | function | QueryOptions | No | Info or set query options | 
| options | QueryOptions | No | Set query options. | 
unubscribe
Removes a subscription if the query was subscribed in the QuerySet. This applies only to the retrieveAndSubscribe and subscribe methods:
querySet.unsubscribe("SELECT * FROM <YOUR-COLLECTION> WHERE key=<YOUR-KEY>");
batch
To make requests to the Event Delivery Service more efficient, it is possible to join them into one WebSocket/SSE message. This returns a QueryBatch  instance, which has the same methods (retrieve, retrieveAndSubscribe, subscribe, unsubscribe) as QuerySet.
The final method should beassemble(),  which builds and sends the message:
let queryBatch = querySet.batch();
queryBatch
    .retrieve("SELECT * FROM <YOUR-COLLECTION> WHERE key=<YOUR-KEY>", (event) => {
       console.log(`Message event: `, event);
    })
    .retrieveAndSubscribe("SELECT * FROM <YOUR-COLLECTION> WHERE key=<YOUR-KEY>", (event) => {
       console.log(`Message event: `, event);
    })
    .subscribe("SELECT * FROM <YOUR-COLLECTION> WHERE key=<YOUR-KEY>", (event) => {
       console.log(`Message event: `, event);
    })
    .unsubscribe("SELECT * FROM <YOUR-COLLECTION> WHERE key=<YOUR-KEY>")
    .assemble();
unubscribeAll
Removes all subscriptions in the QuerySet:
querySet.unsubscribeAll();
QueryOptions instance schema:
| Property | Type | Requred | Description | 
|---|---|---|---|
| compress | bolean | No | compress response data |