小编Dav*_*sel的帖子

Marklogic-跨文档检索 XML 元素的不同值

我们正在构建一个以 ML 作为后端数据库的企业应用程序。要求之一是在不同文档中查找 XML 中特定元素的不同值。

我可以使用结构化查询/组合查询获取不同的entity_type吗

以下所有文档都是实体集合的一部分:

文件1

<xml>
    <entities>
        <entity_name>Imprezza</entity_name>
        <entity_type>Car</entity_type>
        <entity_color>Red</entity_color>
    <entities>
<xml>
Run Code Online (Sandbox Code Playgroud)

文件2

<xml>
    <entities>
        <entity_name>Ducati</entity_name>
        <entity_type>Bike</entity_type>
        <entity_color>White</entity_color>
    <entities>
<xml>
Run Code Online (Sandbox Code Playgroud)

文件3

<xml>
    <entities>
        <entity_name>Lancia</entity_name>
        <entity_type>Car</entity_type>
        <entity_color>Red</entity_color>
    <entities>
<xml>
Run Code Online (Sandbox Code Playgroud)

文件4

<xml>
    <entities>
        <entity_name>Scania</entity_name>
        <entity_type>Truck</entity_type>
        <entity_color>Black</entity_color>
    <entities>
<xml>
Run Code Online (Sandbox Code Playgroud)

要求:给我集合中所有不同的entity_type

结果:汽车、自行车、卡车

PS:需要在Java层获取结果。我们目前有一个 API,可以根据输入生成 MarkLogic 组合查询(结构化查询 + 选项查询)。我可以使用结构化查询/组合查询获取不同的实体吗?

marklogic marklogic-8

1
推荐指数
1
解决办法
352
查看次数

如何更新不同数据库中的节点或如何更新外部节点?- XDMP-UPEXTNODES

我正在尝试更新与当前数据库不同的数据库中的文档。但它给了我以下错误-

XDMP-UPEXTNODES: xdmp:node-replace(fn:doc("/C:/Users/Downloads/abc.csv-0-2")/*:envelope/*:root/*:Status, <Status>1000</Status>) -- Cannot update external nodes
Run Code Online (Sandbox Code Playgroud)

我正在使用下面的代码-

let $temp := 
  for $i in $result
  let $error := $i/*:envelope/*:ErrorMessage
  let $status := $i/*:envelope/*:Status
  return 
    if(fn:exists($i) eq fn:true()) then (
      xdmp:invoke-function(
        function() { 
          xdmp:node-replace($status,<Status>1000</Status>),
          xdmp:node-replace($error,<ErrorMessage>Change Error in other Database-2</ErrorMessage>)  
        },
        <options xmlns="xdmp:eval">
          <database>{xdmp:database("DATABASE-2")}</database>
        </options>))
    else ()
Run Code Online (Sandbox Code Playgroud)

我想更新Database-2的错误和状态节点。

$result 是我从Database-2获取的文档。

我从Database-1运行此代码

有什么建议 ?

xquery marklogic

1
推荐指数
1
解决办法
330
查看次数

MarkLogic Server崩溃 - 我认为太多记录正在被退回

我编写了一个不使用CQ Web应用程序返回的XQuery.

我认为下面会工作,但服务器仍然挂起.

declare namespace data = "http://marklogic.com/ps/data";
/data:doc/data:provider[ 1 to 5 ]
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?如果我在树上搜索,它就不会挂起.我正在尝试探索此时的数据结构,因此我需要至少返回一个提供程序.

提前致谢,

圭多

xquery marklogic

0
推荐指数
1
解决办法
177
查看次数

如何将docx,xl​​sx和txt文件上传到Marklogic Server?

我有一个文件夹,其中包含doc,docx,xl​​sx,pdf和txt文件.我使用这个XQuery将所有这些文件上传到Marklogic: -

for $d in xdmp:filesystem-directory("C:\uploads")//dir:entry
return 
  xdmp:document-load($d//dir:pathname,
    <options xmlns="xdmp:document-load">
    <uri>{concat("/documents/", string($d//dir:filename))}</uri>
    <permissions>{xdmp:default-permissions()}</permissions>
    <collections>{xdmp:default-collections()}</collections>
    <format>binary</format>
    </options>)
Run Code Online (Sandbox Code Playgroud)

我还为我的数据库安装了内容处理.现在,当我上传doc和pdf文件时,它们会转换为xml和xhtml文件.但是docx,xl​​sx和txt没有被转换.有人可以告诉我为什么这些文件没有被转换?

xquery marklogic

0
推荐指数
1
解决办法
1017
查看次数

按日期排序对象数组

例如

myArr= [
    {name:"Joe",  id:3,  date: "2012.10.12"},
    {name:"Ed",   id:43, date: "2012.02.12"},
    {name:"Mark", id:22, date: "2012.02.11"}
];
Run Code Online (Sandbox Code Playgroud)

那么如何按日期对此数组进行排序?

这只是一个小例子,但它就像数组中的1000个对象.我在互联网上搜索过并发现了一些使用该sort()功能的例子,但它在我的大数组中不起作用.

html javascript

0
推荐指数
1
解决办法
1837
查看次数

使用MarkLogic数据库搜索二进制文件中的内容

是否可以使用
带有Node.js的MarkLogic 搜索二进制文件内容,如PDF ?如何使用带有Node.js的MarkLogic检索存储在数据库中的PDF文档?

marklogic

0
推荐指数
1
解决办法
113
查看次数

我们是否有任何机制可以维护Marklogic中文档的历史记录?

在我的项目中,我们有一个需要维护文档历史记录或版本的需求。就像我们使用相同的URI插入文档一样,它将旧文档替换为新文档。但是我们想保留旧版本号。

我们如何在Marklogic中实现这一目标?

xml version marklogic marklogic-9

0
推荐指数
1
解决办法
130
查看次数

如何使用mem:node-replace将内容提交到数据库?

我正在使用我正在使用的代码mem:node-replace().代码如下─

let $a := 
  for $i in $res
  let $uri := fn:base-uri($i)
  let $doc := fn:doc($uri)
  return if(fn:exists($doc) eq fn:true()) 
    then (
      (
        mem:node-replace($doc//*:NODE1,<NODE1>{doc($id)//*:NODE1}</NODE1>),
        mem:node-replace($doc//*:NODE2,<NODE2>{$curr_date}</NODE2>)
      ) 
    ) 
    else () 
return $a
Run Code Online (Sandbox Code Playgroud)

我能够看到值在LOG中被替换,但它没有反映到数据库中.我应该如何在我的数据库中提交/保存此节点替换?

有什么建议 ?

xquery marklogic

0
推荐指数
1
解决办法
60
查看次数

标签 统计

marklogic ×7

xquery ×4

html ×1

javascript ×1

marklogic-8 ×1

marklogic-9 ×1

version ×1

xml ×1