cts 查询 select 只有来自 json Marklogic 暂存文档中的一个字段
cts query to select only a field from json document in Marklogic staging
我正在尝试编写 javaScript cts 查询以根据另一个键从 json 文档中查询一个键。即,类似于 select name from data-hub-staging where source='source1'
的查询
{
"source": "source1",
"name": "John",
"DOB": "1-01-1990",
"load_date": "2021-10-23 10:23:55"
}
我一直在尝试以下查询,但它 returns 所有字段,我只想要名称字段。
const query = cts.jsonPropertyValueQuery(
"source",
"source1");
cts.search(query)
cts.search
的目的是 运行 搜索 returns 整个文档。 cts.jsonPropertyValueQuery
标识选择文档的标准。在您完成 运行 搜索后,您将能够从该文档中提取任何您想要的内容。我认为应该这样做:
const query = cts.jsonPropertyValueQuery(
"source",
"source1");
cts.search(query)
.toArray()
.map(doc => doc.root.name)
您可以使用 MarkLogic 的 jSearch 做类似的事情 API:
import jsearch from '/MarkLogic/jsearch.mjs';
jsearch.documents()
.where(jsearch.byExample({source: {$value: 'source1'}}))
.map({extract: {paths: ['/name']}})
.result()
我正在尝试编写 javaScript cts 查询以根据另一个键从 json 文档中查询一个键。即,类似于 select name from data-hub-staging where source='source1'
的查询{
"source": "source1",
"name": "John",
"DOB": "1-01-1990",
"load_date": "2021-10-23 10:23:55"
}
我一直在尝试以下查询,但它 returns 所有字段,我只想要名称字段。
const query = cts.jsonPropertyValueQuery(
"source",
"source1");
cts.search(query)
cts.search
的目的是 运行 搜索 returns 整个文档。 cts.jsonPropertyValueQuery
标识选择文档的标准。在您完成 运行 搜索后,您将能够从该文档中提取任何您想要的内容。我认为应该这样做:
const query = cts.jsonPropertyValueQuery(
"source",
"source1");
cts.search(query)
.toArray()
.map(doc => doc.root.name)
您可以使用 MarkLogic 的 jSearch 做类似的事情 API:
import jsearch from '/MarkLogic/jsearch.mjs';
jsearch.documents()
.where(jsearch.byExample({source: {$value: 'source1'}}))
.map({extract: {paths: ['/name']}})
.result()