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
Bedrock Mission!

Learn more

View all

Sign in to view all badges

SOLVED

Is there way to know nodes without jcr:content node?

GK-AEM
Level 9
Level 9

Hi All,

Is there any way/tool to know the JCR nodes without jcr:content?

Please help me!!!

Thanks,

Kishore

1 Accepted Solution
kautuk_sahni
Correct answer by
Community Manager
Community Manager

Hi 

Please have a look at these posts:- 

Link:-http://help-forums.adobe.com/content/adobeforums/en/experience-manager-forum/adobe-experience-manage...

// How to find nodes without specific child node? How can I find nodes without specific child node (e.g. jcr:content)?

 

Link:- http://stackoverflow.com/questions/25019693/cq-5-query-builder-to-get-list-of-pages-without-jcrconte...

// to get list of pages without jcr:content node

 

I hope this would help you.

~kautuk

View solution in original post

0 Replies
Opkar_Gill
Employee
Employee

Not sure I understand the question, what are you trying to achieve, why do you want to do this?

Regards,

Opkar

GK-AEM
Level 9
Level 9

Recently we have upgraded application from AEM 6.0  to AEM 6.2.

We see some of the nodes without jcr:content node.

Would like to know if there is any way to know the nodes without any jcr:content.

Thanks,

Kishore

smacdonald2008
Level 10
Level 10

Is this specific to under a path like /content/<yoursite>? 

Or are you looking at this across the entire JCR structure? 

GK-AEM
Level 9
Level 9

smacdonald2008 wrote...

Is this specific to under a path like /content/<yoursite>? 

Or are you looking at this across the entire JCR structure? 

 

Looking for entire JCR structure.

Veena_Vikraman
Level 2
Level 2

Are you seeing jcr:content nodes missing for your pages and assets ?

GK-AEM
Level 9
Level 9

I have seen it.

Wants to know if there are still any such nodes without jcr:content node in our application.

Looking for a way to know these kind of nodes.

-Kishore

kautuk_sahni
Correct answer by
Community Manager
Community Manager

Hi 

Please have a look at these posts:- 

Link:-http://help-forums.adobe.com/content/adobeforums/en/experience-manager-forum/adobe-experience-manage...

// How to find nodes without specific child node? How can I find nodes without specific child node (e.g. jcr:content)?

 

Link:- http://stackoverflow.com/questions/25019693/cq-5-query-builder-to-get-list-of-pages-without-jcrconte...

// to get list of pages without jcr:content node

 

I hope this would help you.

~kautuk

View solution in original post

velp58307525
Level 2
Level 2

Hi Kautukashni,

I had tried with the below mentioned link but it is not working.

Link:- http://stackoverflow.com/questions/25019693/cq-5-query-builder-to-get-list-of-pages-withou t-jcrcontent-node

// to get list of pages without jcr:content node

And my requirment was to remove the jcr:content from the Dam Assets, Please find my Query below.

Jcr Query :

path=/content/dam

type=dam:Assest

child.name=jcr:content
child.operator=not_exists
p.limit=-1

Arun_Patidar
Community Advisor
Community Advisor

HI,

I above query child is a custom predicate , you have to create that before using. same is mentioned in Link also.

but If you want to check specific node with name you can use nodename like below:

path=/content/dam

type=dam:Assest

nodename=jcr:content

p.limit=-1

velp58307525
Level 2
Level 2

Hi ,

        I Had tried with this Query as well.

type=dam:Assest

path=/content/dam

nodename=jcr:content

node.operation=not

p.limit=-1

But Still I am getting the list of pages which has jcr:content in it. My ultimate aim is to skip the jcr:content  from search results is there any way to that ?

Arun_Patidar
Community Advisor
Community Advisor

Hi,

nodename doesn't support operation features only property does. So it won't work.

In this case you need to write your own predicate like Child to achieve this

OR you can create a servlet which traverse through path and find out all the Childs without jcr:content using Node API, and if you wish you can delete those nodes right away inside Servlet.

Thanks

Arun

lucian_nicolaescu
Level 2
Level 2

You could use the groovy console (http://localhost:4502/groovyconsole) with a simple script like:

final query = session.workspace.queryManager.createQuery("SELECT * FROM [cq:Page] AS page WHERE ISDESCENDANTNODE(page, '/content/yoursite')", "JCR-SQL2")
final results = query.execute()
results.nodes.each{ node ->
    if (!node.hasNode("jcr:content")) {
        println node.path + " is missing the jcr:content node"
    }
}

 As you can see, this only searches for pages but can be changed or extended to work for dam:Asset depending on your use-case.