Home > Blog > [Q&A Friday] SELECT clause in Nuxeo NXQL queries

[Q&A Friday] SELECT clause in Nuxeo NXQL queries

Hello Everyone! Today we have a question from Franck. He’s asking why he cannot do query with a specific select clause like this :

Administrator@> query "select dc:title from myDocumentType"

while this is working fine:

Administrator@> query "select * from myDocumentType"
/default-domain/workspaces/Library/sections/North America

SELECT clause in NXQL queries

SELECT clause in NXQL queries

Frank is actually running those queries from Nuxeo Shell. The query command uses the Document.Query operation which itself uses CoreSession#query. This method will only return a DocumentModelList so you cannot use a specific select clause in your query. And this makes sense, because with Content Automation, you usually manipulate Documents.

So when can you use a specific select clause? You have to use CoreSession#queryAndFetch. This will return an IterableQueryResult. If you still want to do your query from the shell, a quick and easy way to do it is to use a Groovy script like this:

iterableQueryResult = Session.queryAndFetch("SELECT dc:title,ecm:uuid FROM Document WHERE dc:title = ‘Workspace’", "NXQL");
out = "";
out += iterableQueryResult.next().toString() + "n";
// don’t forget to close it!
return out;

To call it you have to use the script command and give it the path of your Groovy script:

Administrator@localhost:/> script /home/ldoguin/test.groovy
{ecm:uuid=168458db-47fc-4c34-be50-bdc6f4dbcb56, dc:title=Workspace}

If you want to know more about Nuxeo’s NXQL, take a look at the documentation.


Start a Free Trial of Nuxeo
Request a
of the
Nuxeo Platform
Tagged : Java,Q&A