Running queries
query takes the text form of the query API, which is also what the HTTP API and the admin UI send.
It reads like the typed API of Part III: a node type followed by method calls.
Pass values with --param name=value and use them by name in the query. Numbers, true/false
and guids keep their type; anything else is a string. --file reads the query from a file.
The result is printed as JSON in the shape a client receives. A projection such as
Select(a => new { a.Name, a.Price }) gives one JSON object per row, keyed by the member names as
written in the query.