Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
BedrockMission!

Learn more

View all

Sign in to view all badges

SOLVED

Find first level child using query

vdhim23
Level 5
Level 5

Hi

I am trying to find the child pages for the content path provided, I am using the below parameter to find the pages :

path=/content/geometrixx/en/toolbar type=cq:Page orderby=@jcr:content/cq:lastModified

This giving me all pages below toolbar also the childs of child like

But i want only at first level and not above account, Any idea how to add criteria in query debugger to find only child page of the path selected.

Thanks

1 Accepted Solution
Jörg_Hoh
Correct answer by
Employee
Employee

If you are not required to use a query, I would use the API and use somthing like this; it is much faster than a query.

Page p = ... Iterator<Page> iter = p.listChildren();

(see https://dev.day.com/docs/en/cq/current/javadoc/com/day/cq/wcm/api/Page.html#listChildren%28com.day.c...)

View solution in original post

4 Replies
Jörg_Hoh
Correct answer by
Employee
Employee

If you are not required to use a query, I would use the API and use somthing like this; it is much faster than a query.

Page p = ... Iterator<Page> iter = p.listChildren();

(see https://dev.day.com/docs/en/cq/current/javadoc/com/day/cq/wcm/api/Page.html#listChildren%28com.day.c...)

View solution in original post

vdhim23
Level 5
Level 5

Jörg Hoh wrote...

If you are not required to use a query, I would use the API and use somthing like this; it is much faster than a query.

  1. Page p = ...
  2. Iterator<Page> iter = p.listChildren();

(see https://dev.day.com/docs/en/cq/current/javadoc/com/day/cq/wcm/api/Page.html#listChildren%28com.day.c...)

 

 

 

Thanks Jorg, I want to use query not because only to list children, I need to some other operation to apply on the resultset, like i want to get the child pages in sorted order & may be some more filters can be added.  I have made changes in my original post, please suggest if you can provide me the parameters to be use in query debugger.

Jörg_Hoh
Employee
Employee

Hi

First of all, there is variant of the listChildren() method available, where you can specify a filter. But this method does not support ordering, in that case you need to do it yourself.
I am not really familiar with the querybuilder,  but if you use JCR SQL2 directly, you could use something like this:

SELECT * FROM [cq:Page] AS s WHERE ISCHILDNODE(s,'/content/geometrixx/en/toolbar') order by [jcr:content/cq:lastModified]

kind regards,
Jörg

decodedigital
Level 1
Level 1

You can use path.flat=true in your query string to get only the direct children.

  • path : This is used to search under a  particular hierarchy only.
    • path.self=true : If true searches the subtree including the main node given in path,  if false searches the subtree only.
    • path.exact=true : If true exact path is matched, if false all descendants are included.
    • path.flat=true If true searches only the direct children .