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 |