2016-03-03 8 views
5

Próbuję uzyskać łączną wielkość wszystkich lasów dołączonych do konkretnej bazy danych.Aby uzyskać łączną wielkość wszystkich lasów dołączonych do konkretnej bazy danych

Korzystanie poniżej kod mam rozmiar wszystkich poszczególnych lasach, ale tkwi w jaki sposób osiągnąć rozwiązanie:

for $db-id in xdmp:databases() 
let $db-name := xdmp:database-name($db-id) 
for $forests in xdmp:forest-status(xdmp:database-forests(xdmp:database($db-name))) 
let $space := $forests//forest:device-space 
let $f_name := $forests//forest:forest-name 
for $stand in $forests//forest:stands 
let $f_size := fn:sum($stand/forest:stand/forest:disk-size) 

Odpowiedz

5

Myślę, że szukasz czegoś podobnego:

xquery version "1.0-ml"; 

declare namespace forest = "http://marklogic.com/xdmp/status/forest"; 

for $db-id in xdmp:databases() 
let $db-name := xdmp:database-name($db-id) 
let $db-size := 
    fn:sum(
    for $f-id in xdmp:database-forests($db-id) 
    let $f-status := xdmp:forest-status($f-id) 
    let $space := $f-status/forest:device-space 
    let $f-name := $f-status/forest:forest-name 
    let $f-size := 
     fn:sum(
     for $stand in $f-status/forest:stands/forest:stand 
     let $stand-size := $stand/forest:disk-size/fn:data(.) 
     return $stand-size 
    ) 
    return $f-size 
) 
order by $db-size descending 
return $db-name || " = " || $db-size 

HTH !

+0

Dzięki człowieku .. !! To działało dobrze ... :) –

5

Najlepiej zadzwonić pod numer xdmp:forest-status() z sekwencją identyfikatorów lasów, zamiast tworzyć kilka pojedynczych wywołań, aby praca była wykonywana równolegle.

xquery version "1.0-ml"; 

declare namespace fs = "http://marklogic.com/xdmp/status/forest"; 

let $include-replicas := fn:true() 
let $db := xdmp:database("MyDatabase") 
for $fs in xdmp:forest-status(xdmp:database-forests($db, $include-replicas)) 
return 
    fn:string-join(
    ($fs/fs:forest-name, fn:sum($fs/fs:stands/fs:stand/fs:disk-size)) ! fn:string(.), 
    " ") 
+0

Dziękuję wam bardzo ... Wszystko działało dobrze ..... –

Powiązane problemy