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 |