eXist Command: query
invokes an 'ad-hoc' query supplied locallySynopsis
query [exist options] [options] query-uriDescription
Invokes an ad-hoc query supplied locally and executed on the eXist server.Options
The query command accepts all eXist Common Options in addition to| -start # | Start at result row # (default 1) |
| -max # | Return at most # results (default no limit) |
| -q query | Specifies the query to execute as an argument |
| -f query_file | Specifies the name of the file containing the query |
| -t,-text | Outputs the result as text. Equivalent to -contentType text/plain |
| -b,-binary | Outputs the result as binary. Equivilent to -contentType application/octet-stream |
| -x,-xml | Outputs the result as xml. Equivalent to -contentType text/xml |
| -raw | Outputs the results without any parsing. |
| -session sessionid | Associates a session with this query |
| -p property=value, -prop property=value | Assigns a property with the query |
| -v | Specifies that external variables are supplied as argument pairs at the end of the command line - NOT IMPLEMENTED IN CURRENT VERSION of eXist Server |
| -m,-meta | Outputs the meta data returned with the query as the first element of the result sequence as well as the results |
If no -f or -q is specified then the first argument is taken to be the query.
Example
Assuming the prefix "e" is imported as the exist, invokes the query '"Hello World"'e:query "'Hello World'"
Result
Hello World
Execute the query '1 to 5,"hello",<text>world</text>'
e:query -q '1 to 5,"hello",<text>world</text>'
Result
1 2 3 4 5 hello <text>world</text>
The same query stored in a variable then outputting the 6th element
e:query -q '1 to 5,"hello",<text>world</text>' >{result}
echo ${result[6]}Result
hello
The same query but include the meta data returned as the first element
e:query -m -q '1 to 5,"hello",<text>world</text>'
Result
<exist:result xmlns:exist="http://exist.sourceforge.net/NS/exist" exist:hits="7" exist:start="1" exist:count="7"/> 1 2 3 4 5 hello <text>world</text>
The same query without any processing returning exactly what the eXist server returns.
e:query -raw -q '1 to 5,"hello",<text>world</text>'
Result
<exist:result xmlns:exist="http://exist.sourceforge.net/NS/exist" exist:hits="7" exist:start="1" exist:count="7"> <exist:value exist:type="xs:integer">1</exist:value> <exist:value exist:type="xs:integer">2</exist:value> <exist:value exist:type="xs:integer">3</exist:value> <exist:value exist:type="xs:integer">4</exist:value> <exist:value exist:type="xs:integer">5</exist:value> <exist:value exist:type="xs:string">hello</exist:value> <text>world</text> </exist:result>
Implementation
query is implemented using the REST protocol POST methods.
Currently the -v option is unimplmented until eXist support for external variables makes it into a release branch.
See http://exist.sourceforge.net/devguide_rest.html
eXist Extension Module