从cts返回按键排序的映射:*-值在Marklogic中同时出现

从cts返回按键排序的映射:*-值在Marklogic中同时出现,marklogic,Marklogic,我有100个文档,如下所示,其中n=1到100 <root> <parent> <child id="n">sometext</child> </parent> </root> 我希望通过指定“升序”选项按键对映射进行排序。但是返回的映射没有排序。事实上,每次带id=53的文档位于顶部时。 如何获取排序映射?map:map作为HashMap实现,因此无论添加键的方法或顺序如何,都无法从中获取排序键。使用非映射响应,并使用F

我有100个文档,如下所示,其中n=1到100

<root>
<parent>
<child id="n">sometext</child>
</parent>
</root>
我希望通过指定“升序”选项按键对映射进行排序。但是返回的映射没有排序。事实上,每次带
id=53
的文档位于顶部时。
如何获取排序映射?

map:map作为HashMap实现,因此无论添加键的方法或顺序如何,都无法从中获取排序键。使用非映射响应,并使用FLWOR对其进行迭代,以按照函数返回的顺序对其进行处理


map:map是作为HashMap实现的,因此无论添加键的方法或顺序如何,您都无法从中获取已排序的键。使用非映射响应,并使用FLWOR对其进行迭代,以按照函数返回的顺序对其进行处理


结果没有排序,因为map:map项是的一个种类,因此根据定义键是伪随机顺序


您可以将贴图重建为按值排序,或按
cts:frequency
排序。词典函数可能应该使用
json:object
而不是
map:map
,但从7.0-3开始,它们就不使用了。如果愿意,您可以将该想法作为RFE发送给MarkLogic support。

结果没有排序,因为map:map项是的一种,因此根据定义键是伪随机顺序


您可以将贴图重建为按值排序,或按
cts:frequency
排序。词典函数可能应该使用
json:object
而不是
map:map
,但从7.0-3开始,它们就不使用了。如果愿意,您可以将该想法作为RFE发送给MarkLogic支持部门。

谢谢。那很有用,谢谢。那很有用。谢谢。那很有帮助。我想要一个映射的原因是可能有多个文档共享同一个id(原始示例中没有暗示)。因此,对于非映射响应,我将不得不进行分组操作,这是我希望避免的。艰难的选择:要么使用map进行自己的排序,要么使用coocxml进行自己的分组。您可能必须同时尝试这两种方法,以查看哪一种更快。还可以考虑给您一系列JSON:按值排序的数组。使用它可能比使用cooc XML更快。谢谢。这很有帮助。我想要一个映射的原因是可能有多个文档共享同一个id(原始示例中没有暗示)。因此,对于非映射响应,我将不得不进行分组操作,这是我希望避免的。艰难的选择:要么使用map进行自己的排序,要么使用coocxml进行自己的分组。您可能必须同时尝试这两种方法,以查看哪一种更快。还可以考虑给您一系列JSON:按值排序的数组。使用它可能比使用coocxml更快。
cts:element-attribute-value-co-occurrences(xs:QName("child"),xs:QName("id"),xs:QName("xdmp:document"),(),("ascending","map",
     "collation-2=http://marklogic.com/collation/codepoint"),())