小编Fan*_* Li的帖子

MarkLogic cts.search中的路径表达式

我的印象是MarkLogic中的XQuery和服务器端JavaScript API在很大程度上是等效的。但是cts:searchvs 似乎有很大的不同cts.search。在中cts:search,我可以指定要搜索和返回的元素。例如,我可以从食谱书中使用肉桂粉作为成分来检索所有食谱:

cts:search(//recipe, cts:element-word-query(xs:QName('ingredients'), 'cinnamon'))
Run Code Online (Sandbox Code Playgroud)

虽然cts.search不接受一个路径表达式,并返回整个食谱书的文件:

cts.search(cts.elementWordQuery(xs.QName('ingredients'), 'cinnamon'))
Run Code Online (Sandbox Code Playgroud)

MarkLogic邮件列表中曾问过同样的问题,但我在那儿看不到答案:https : //developer.marklogic.com/pipermail/general/2015-March/016508.html

下面是一个最小的示例:

<book>
  <recipe>
    <ingredients>cinnamon, peppermint</ingredients>
    <instruction/>
  </recipe>
  <recipe>
    <ingredients>sugar, peppermint</ingredients>
    <instruction/>
  </recipe>
  <recipe>
    <ingredients>coconut oil</ingredients>
    <instruction/>
  </recipe>
</book>
Run Code Online (Sandbox Code Playgroud)

xquery将是:

cts:search(//recipe, cts:element-word-query(xs:QName('ingredients'), 'cinnamon'))
Run Code Online (Sandbox Code Playgroud)

和响应:

<recipe>
  <ingredients>cinnamon, peppermint</ingredients>
  <instruction></instruction>
</recipe>
Run Code Online (Sandbox Code Playgroud)

marklogic

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

将 JSON-Patch 转换为 MarkLogic JSON 补丁规范?

MarkLogic PATCH API 使用的JSON 补丁规范与 JSON-Path 标准 ( RFC 6902 )非常相似,但并不完全相同。例如,将节点添加到以下文档:

{
  "parent": {
    "child1": "c1-value",
    "child2": "c2-value"
  }
}
Run Code Online (Sandbox Code Playgroud)

MarkLogic 补丁:

{
  "insert": {
    "context": "/parent",
    "position": "last-child",
    "content": { "child3": "c3-value" }
  }
}
Run Code Online (Sandbox Code Playgroud)

JSON-Patch 标准:

{
  "op": "add",
  "path": "/parent/child3",
  "value": "c3-value"
}
Run Code Online (Sandbox Code Playgroud)

有没有办法自动将 JSON-Patch 翻译成 MarkLogic Patch?我的想法是利用诸如json-patch-gen自动生成 JSON-Patch 操作并将它们转换为 MarkLogic Patch 之类的库来更新 MarkLogic 中的文档。

或者,是否有一个 JavaScript 库可用于通过区分两个 JavaScript 对象来自动生成 MarkLogic 补丁?

json marklogic json-patch

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

如何在 MarkLogic 中使用 XQuery 创建 UTC 时间戳?

我觉得我一定错过了一些东西,但我就是不知道如何使用 XQuery 在 MarkLogic 中创建 UTC 时间戳。该fn:current-dateTime函数使用操作系统指定的时区偏移量创建时间戳。

使用服务器端 JavaScript 这很简单:

new Date().toISOString()

// 2020-02-07T14:43:32.588Z
Run Code Online (Sandbox Code Playgroud)

谢谢你!

xquery marklogic

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

如何在 MarkLogic 10 中的资源扩展中导入 JavaScript 模块

MarkLogic v10 引入了对原生 JavaScript 模块(ECMAScript 模块)的支持。

https://docs.marklogic.com/guide/jsref/modules

但是我不确定如何在资源扩展中导入这些模块。例如:

'use strict';

import * as jsearch = from '/MarkLogic/jsearch.mjs';

function get(context, params) {
  // omitted
};

exports.GET = get;
Run Code Online (Sandbox Code Playgroud)

会导致以下错误:

JS-JAVASCRIPT: import * as jsearch = from '/MarkLogic/jsearch.mjs'; -- 运行 JavaScript 请求时出错:SyntaxError: Unexpected token *;

同样,导入自定义模块如import { foo } from '/bar.mjs'导致类似的错误:Unexpected token { .

谢谢!

javascript marklogic

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

标签 统计

marklogic ×4

javascript ×1

json ×1

json-patch ×1

xquery ×1