...
(2) Model-driven. Since the model definitions define the structure of the model data, the TQLEngine constructs the database queries based on the model definition to retrieve requested data or perform other CRUD operations. The model definition is NOT the data schema. Model instance data are saved in schemaless key value pairs.
(3) Actionable. Modifications of model data via TQL queries, if involving actionable attributes, can result in activation of actions, some of which may execute device actuations.
In addition, although you can "FIND" known values of model attributes, you will not be able to set their known values. This is because the known values are reserved to be only updated by the result of Actions, which comes from external systems or external things.
TQL queries have the following standard structures:
FIND
CREATE
SAVE
UPDATE
DELETE
DELETEALL
When a project is deployed onto a TQL Engine, it always creates two end points
Queries are sent to end points as payload of a message.
What about the Query End Points?
When to use queries, what are the different ways
(1) from the app (client to TQLEngine) - external (needs query end point), - return will be sent as message back to client.
(2) from model facet, invoke - internal (the return will be the output of the invoke). - query itself become part of the model action.
What can go inside a query
Save, update, delete, deleteAll, Find. Create, SetResponseData, For
Find can have constraints
FacetScript, JavaScript
Macro
Does query only change value, not known value (true)
What is the common structure of a query
What are the most commonly used types of queries
Instantiation query (create), or save
Subscription query (save)
Find query, joint query
Update (update, save)
Macro
Show query
In addition, you can use other operations such as conditions/constraints, response modifications, iterations, etc. within the queries. For more details see /wiki/spaces/TQLDocs/pages/1179674.