I'm trying to write a javaScript cts query to query a key from a json document based on another key. i.e, similar to a query like 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"
}
I have been trying the below query but it returns all the fields, I wanted only the name field.
const query = cts.jsonPropertyValueQuery(
"source",
"source1");
cts.search(query)
The purpose of cts.search
is to run a search that returns entire documents. The cts.jsonPropertyValueQuery
identifies a criterion for selecting a document. After you've run the search, you'll be able to pull out whatever you'd like from that document. I think this should do it:
const query = cts.jsonPropertyValueQuery(
"source",
"source1");
cts.search(query)
.toArray()
.map(doc => doc.root.name)
You can do something similar with MarkLogic's jSearch API:
import jsearch from '/MarkLogic/jsearch.mjs';
jsearch.documents()
.where(jsearch.byExample({source: {$value: 'source1'}}))
.map({extract: {paths: ['/name']}})
.result()