Xquery over all collections
Wednesday, 6 February 2013 · 4 messages · last reply 24 Feb 2013
P
pw6 Feb 2013 01:13 #
Hello List
I am wanting to query all collections in BaseX 7.5 without hard coding the names of each collection in my xquery.
I can list the collections with
db:list() but am struggling to get something like
let $r := (collection('A'), collection('B'),
collection('C'))/xml/indicator[code='myCode']
I can use db:list() to get all documents in all collections in this way:let $q := for $a in (db:list())
let $e :=string-join( $a, ',')
return $e
let $z := for $x in $q
return db:open($x)
for $r in $z
return $rCan anyone please suggest a way of using
db:list and other functions in xquery to perform a query on all collections.
Cheers
PeterLK
Lukas Kircher6 Feb 2013 08:40 #
Hi Peter,
for example, if I look for all *<br>* elements over all
documents/collections:
*for $d in
db:list()*
*return collection($d)//br*
*
*
Is this what you were looking for?
Cheers,
LukasQuoted text · pw · 4 lines
On Wed, Feb 6, 2013 at 1:13 AM, <pw at themail.co.uk> wrote: > let $r := (collection('A'), collection('B'), > collection('C')) >
P
pw6 Feb 2013 23:43 #
Hi Lukas
That is exactly what I was looking for ... :-)
I was clearly just thinking it was more complicated than it really was
Thanks
Peter
Quoted text · Lukas Kircher · 30 lines
> > > >---- Original Message ---- >From: lukaskircher1 at gmail.com >To: pw at themail.co.uk >Subject: Re: [basex-talk] Xquery over all collections >Date: Wed, 6 Feb 2013 08:40:07 +0100 > >>Hi Peter, >> >>for example, if I look for all *<br>* elements over all >>documents/collections: >> >>*for $d in db:list()* >>*return collection($d)//br* >>* >>* >>Is this what you were looking for? >> >>Cheers, >>Lukas >> >> >>On Wed, Feb 6, 2013 at 1:13 AM, <pw at themail.co.uk> wrote: >> >>> let $r := (collection('A'), collection('B'), >>> collection('C')) >>> >>
P
pw24 Feb 2013 11:59 #
Hi Lukas
Sorry to be so long in actually picking this up... but I think that let $r := (collection('A'), collection('B'),collection('C'))//br
is a lot faster than
let $r := for $d in db:list()
return collection($d)//brAny thoughts?
Cheers
Peter
Quoted text · pw · 30 lines
> > > >---- Original Message ---- >From: lukaskircher1 at gmail.com >To: pw at themail.co.uk >Subject: Re: [basex-talk] Xquery over all collections >Date: Wed, 6 Feb 2013 08:40:07 +0100 > >>Hi Peter, >> >>for example, if I look for all *<br>* elements over all >>documents/collections: >> >>*for $d in db:list()* >>*return collection($d)//br* >>* >>* >>Is this what you were looking for? >> >>Cheers, >>Lukas >> >> >>On Wed, Feb 6, 2013 at 1:13 AM, <pw at themail.co.uk> wrote: >> >>> let $r := (collection('A'), collection('B'), >>> collection('C')) >>> >>
Written for BaseX 7.6. BaseX may have changed since: please check the current documentation.
⚡Generated with XQuery