我的数据库中有“ n”个文档,我需要使用我提供的元素和值来动态搜索文档。我在下面解释它-
在我的数据库中采样文档-
document1-
<root>
<id1>12345</id1>
<value>Country</value>
<node1>somevalue</node1>
<node2>somevalue</node2>
<node3>somevalue</node3>
<node4>somevalue</node4>
.......................
</root>
document2-
<root>
<id2>34567</id2>
<value>Fruits</value>
<node1>somevalue</node1>
<node2>somevalue</node2>
<node3>somevalue</node3>
<node4>somevalue</node4>
.......................
</root>
我需要提供输入参数作为Rest End Point来执行我的操作,并且对其余xml文档的输入如下-
INPUT XML-
<root>
<id>id1</id>
<idvalue>12345</idvalue>
.......................
</root>
我需要的输出显示在示例中-
示例-从数据库中搜索所有具有Id = Id1且其值= 12345的文档
有什么建议吗?
答案 0 :(得分:0)
您可以探索MarkLogic的示例查询(QBE)。有关更多详细信息,请访问URL https://docs.marklogic.com/guide/search-dev/qbe
答案 1 :(得分:0)
XPath可以提取输入值以构建cts.elementValueQuery()。
类似于以下内容的方法应在SJS中起作用:
cts.search(cts.elementValueQuery(
xs.QName(fn.string(input.xpath('/root/id'))),
fn.string(input.xpath('/root/idvalue'))
))
或类似于XQuery中的以下内容:
cts:search(fn:collection(), cts:element-value-query(
xs:QName(fn:string($input/root/id)),
fn:string($input/root/idvalue)
))
有关更多信息,请参见http://docs.marklogic.com/cts.elementValueQuery
希望有帮助,