Javascript 在集合中的所有文档中查找给定json属性的不同值
给定文档中的json属性,我需要获取集合中所有文档中该属性的所有不同值。使用Marklogic Java客户端API是否可以实现这一点 例如,我有3个类型为“MyDocument”的文档,属性为“myProperty”- MyDocument1.jsonJavascript 在集合中的所有文档中查找给定json属性的不同值,javascript,java,json,marklogic,Javascript,Java,Json,Marklogic,给定文档中的json属性,我需要获取集合中所有文档中该属性的所有不同值。使用Marklogic Java客户端API是否可以实现这一点 例如,我有3个类型为“MyDocument”的文档,属性为“myProperty”- MyDocument1.json { "myProperty":"val1" } MyDocument2.json { "myProperty":"val1" } MyDocum
{
"myProperty":"val1"
}
MyDocument2.json
{
"myProperty":"val1"
}
MyDocument3.json
{
"myProperty":"val2"
}
我想搜索“myProperty”的所有不同值,即结果应该是“val1”和“val2”
还有,如果我能根据这些不同的值对文档进行分组。例如:
{
"val1": [
{
"myProperty":"val1"
},
{
"myProperty":"val1"
}
],
"val2": [
{
"myProperty":"val2"
}
]
}
我非常感谢任何人的帮助或推动。提前谢谢
更新:
我可以使用qConsole获得我想要的结果,但是使用XQuery。这就是我所做的-
xquery version "1.0-ml";
import module namespace search = "http://marklogic.com/appservices/search" at "/MarkLogic/appservices/search/search.xqy";
let $options :=
<options xmlns="http://marklogic.com/appservices/search">
<values name="myProperty">
<range type="string" facet="true">
<json-property>myProperty</json-property>
</range>
</values>
</options>
return search:values("myProperty", $options)
xquery版本“1.0-ml”;
导入模块命名空间搜索=”http://marklogic.com/appservices/search“在“/MarkLogic/appservices/search/search.xqy”;
让$options:=
我的财产
返回搜索:值(“myProperty”,$options)
我得到的结果是-
<search:values-response name="myProperty" type="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:search="http://marklogic.com/appservices/search">
<search:distinct-value frequency="2">val1</search:distinct-value>
<search:distinct-value frequency="1">val2</search:distinct-value>
</search:values>
瓦尔1
瓦尔2
现在我需要使用Java客户端API来实现这一点。最简单的解决方案是使用以下函数从词典中选择值: 否则,您可以尝试暴力方法。您可以迭代每个文档,选择属性的值并放入映射,然后从映射报告键 如果您有一个具有该JSON属性的非常大的文档集合,那么在单个查询中收集数据时可能会出现超时或扩展树缓存错误。您可以运行CoRB作业,将该属性的值写入输出文件,并使用值
升序| distinct