MarkLogic friends,

When I run this script in CQ, why does the resulting order change every time
I run it?:

let $articles :=
    ( <article><dateline>2011-08-21</dateline></article>
    , <article><dateline>2011-04-21</dateline></article>
    , <article><dateline>2011-02-21</dateline></article>
    , <article><dateline>2011-10-03</dateline></article>
    , <article><dateline>2011-05-03</dateline></article>
    , <article><dateline>2011-04-22</dateline></article>
    )

return
(for $art in $articles
order by xs:date($art/dateline) descending
return $art)/dateline

If I remove the parenthesis from around the for clause, and return
$art/dateline, it's consistently ordered correctly:

<dateline>2011-10-03</dateline>
<dateline>2011-08-21</dateline>
<dateline>2011-05-03</dateline>
<dateline>2011-04-22</dateline>
<dateline>2011-04-21</dateline>
<dateline>2011-02-21</dateline>


But if I return the top level element as a supposedly ordered sequence and
then return child elements off it, it seems like the articles aren't in
order at all:

<dateline>2011-04-21</dateline>
<dateline>2011-08-21</dateline>
<dateline>2011-05-03</dateline>
<dateline>2011-02-21</dateline>
<dateline>2011-10-03</dateline>
<dateline>2011-04-22</dateline>

Or


<dateline>2011-02-21</dateline>
<dateline>2011-05-03</dateline>
<dateline>2011-04-21</dateline>
<dateline>2011-08-21</dateline>
<dateline>2011-04-22</dateline>
<dateline>2011-10-03</dateline>

Etc.

I've gotta be missing some basic concept here.  This doesn't seem right.

Thanks for taking a look,
Jake
_______________________________________________
General mailing list
[email protected]
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to