Hi All,
Is there any way/tool to know the JCR nodes without jcr:content?
Please help me!!!
Thanks,
Kishore
Solved! Go to Solution.
Views
Replies
Total Likes
Hi
Please have a look at these posts:-
// How to find nodes without specific child node? How can I find nodes without specific child node (e.g. jcr:content)?
// to get list of pages without jcr:content node
I hope this would help you.
~kautuk
Views
Replies
Total Likes
Not sure I understand the question, what are you trying to achieve, why do you want to do this?
Regards,
Opkar
Please provide more details.
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
Is this specific to under a path like /content/<yoursite>?
Or are you looking at this across the entire JCR structure?
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.
Are you seeing jcr:content nodes missing for your pages and assets ?
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
Hi
Please have a look at these posts:-
// How to find nodes without specific child node? How can I find nodes without specific child node (e.g. jcr:content)?
// to get list of pages without jcr:content node
I hope this would help you.
~kautuk
Views
Replies
Total Likes
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
Please help me on this.
HI,
I above query child is a custom predicate , you have to create that before using. same is mentioned in Link also.
path=/content/dam
type=dam:Assest
nodename=jcr:content
p.limit=-1
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 ?
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
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.
Views
Replies
Total Likes
Old post but documenting it if someone stumbles across it:
It may not be possible to check directly if a node has a jcr:content node, but in many cases it may suffice to check for a certain property, like jcr:title if you are search for "Pages without a jcr:content node", for example:
SELECT * FROM [cq:Page] AS p WHERE ISDESCENDANTNODE([/content/mysite]) AND p.[jcr:content/jcr:title] IS NULL
Views
Replies
Total Likes
I think the following query will work if the intention is to find the Pages.
It basically checks if the child node, jcr:content, has the property, jcr:title.
The assumption is - all jcr:content has jcr:title. If there is a jcr:content without this property, the query won't work.
path=/content
type=cq:Page
property=jcr:content/jcr:title
property.operation=exists
property.value=false
p.limit=-1
Views
Replies
Total Likes