...
This
...
is
...
a
...
collection
...
of
...
mini-recipes
...
for
...
doing
...
JCR
...
queries.
...
Please
...
add
...
your
...
own
...
!
| SQL | XPath (deprecated in JCR 2.0) |
---|
...
SQL2 | ||
---|---|---|
All pages | select * from mgnl:content | //element(*, |
...
mgnl:content) |
...
select |
...
* |
...
from |
...
[mgnl:page |
...
] |
Pages with "News" |
---|
...
in |
---|
...
the |
---|
...
title |
---|
...
select |
...
* |
...
from |
...
mgnl:content |
...
where |
...
title |
...
like |
...
'%News%' |
...
//element(*, |
...
mgnl:content) |
...
[jcr:like(@title, |
...
'%News%') |
...
] |
...
select |
...
* |
...
from |
...
[mgnl:page |
...
] |
...
where |
...
title |
...
like |
...
'%News%' |
...
Pages where the title exactly matches "News" |
---|
...
(case |
---|
...
sensitive) |
---|
...
select |
...
* |
...
from |
...
mgnl:content |
...
where |
...
title |
...
like |
...
'News' |
...
//element(*, |
...
mgnl:content) |
...
[@title |
...
= |
...
'News' |
...
] |
...
select |
...
* |
...
from |
...
[mgnl:page |
...
] |
...
where |
...
title |
...
like |
...
'News' |
...
STK pages that have a header image | select * from mgnl:content |
---|
...
where |
...
image |
...
is |
...
not |
...
null |
...
//element(*, |
...
mgnl:content) |
...
[@image |
...
] |
...
select |
...
* |
...
from |
...
[mgnl:page |
...
] |
...
where |
...
image |
...
is |
...
not |
...
null |
Instances of a "Teaser" |
---|
...
paragraph |
---|
...
select |
...
* |
...
from |
...
nt:base |
...
where |
...
mgnl:template |
...
= |
...
'stkTeaser' |
...
//* |
...
[@mgnl:template |
...
= |
...
'stkTeaser' |
...
] |
...
select |
...
* |
...
from |
...
[nt:base |
...
] |
...
where |
...
[mgnl:template |
...
] |
...
= |
...
'standard-templating-kit:components/teasers/stkTeaser' |
...
Available paragraph types | select * from nt:base |
---|
...
where |
...
jcr:path |
...
like |
...
'/modules/%/paragraphs/%' |
...
and |
...
type |
...
is |
...
not |
...
null |
...
/jcr:root/modules |
...
[1 |
...
]// |
...
/paragraphs |
...
[1 |
...
]// |
...
[@type |
...
] |
|
User with email 'eric@example.com' |
---|
...
select |
...
* |
...
from |
...
mgnl:user |
...
where |
...
...
= |
...
'eric@example.com' |
...
//element(*, |
...
mgnl:user) |
...
...
= |
...
'eric@example.com' |
...
] |
...
select |
...
* |
...
from |
...
[mgnl:user |
...
] |
...
where |
...
...
= |
...
'eric@example.com' |
...
Pages that have the word "component" |
---|
...
SELECT |
...
* |
...
from |
...
nt:base |
...
WHERE |
...
jcr:path |
...
like |
...
'/ftl-sample-site%' |
...
AND |
...
contains(*, |
...
'component') |
...
AND |
...
(jcr:primaryType |
...
= |
...
'mgnl:page' |
...
OR |
...
jcr:primaryType |
...
= |
...
'mgnl:area' |
...
OR |
...
jcr:primaryType |
...
= |
...
'mgnl:component') |
...
order |
...
by |
...
jcr:path |
...
| SELECT * from [nt:base |
...
] |
...
AS |
...
t |
...
WHERE |
...
ISDESCENDANTNODE( |
...
[/ftl-sample-site]) |
...
AND |
...
contains(t.*, |
...
'component') |
...
Template folders in module configuration | select * from mgnl:content |
---|
...
where |
...
jcr:path |
...
like |
...
'/modules/%/templates' |
...
| select * from [mgnl:content |
...
] |
...
as |
...
t |
...
where |
...
ISDESCENDANTNODE( |
...
[/modules]) |
...
and |
...
name(t) |
...
= |
...
'templates' |
...
Modules that provide commands | select * from nt:base |
---|
...
where |
...
jcr:path |
...
like |
...
'/modules/%/commands' |
...
| select * from [mgnl:content |
...
] |
...
as |
...
t |
...
where |
...
ISDESCENDANTNODE( |
...
[/modules |
...
]) |
...
and |
...
name(t) |
...
= |
...
'commands' |
...
Note:
...
you
...
can
...
use
...
the
...
...
to
...
convert
...
from
...
one
...
format
...
to
...
another.