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