
op.fromDocDescriptors( docsDescriptor as Object[], [qualifier as String?] ) as ModifyPlan
This function constructs document rows from the docsDescriptors.
| Parameters | |
|---|---|
| docsDescriptor | An array of document descriptors. Each document descriptor describes a document. A document descriptor contains a combination of uri, doc, collections, metadata, permissions, quality and temporalCollection. This is a simpler form of op.fromParam. |
| qualifier | Specifies a name for qualifying the column names. |
const op = require('/MarkLogic/optic');
const docsDescriptor = [
{uri:'test1.json',
doc:{"desc":"test1"},
collections:['fromDocDescriptor', 'optic'],
metadata:{'meta':'value1'},
permissions:[xdmp.permission("rest-reader","read"),xdmp.permission("rest-writer","update")],
quality:1,
temporalCollection:'update'}
];
op.fromDocDescriptors(docsDescriptor).result();
declareUpdate();
const op = require('/MarkLogic/optic');
const docsDescriptor = [
{uri:'/optic/update/joinDocDescriptors1.json',
doc:{"desc":"test1"},
collections:['fromDocDescriptor', 'write'],
metadata:[{'validStart': "2014-04-03T11:00:00", 'validEnd': "9999-12-31T11:59:59Z"}],
permissions:[xdmp.permission("rest-reader","read"),xdmp.permission("rest-writer","update")],
quality:1
},
{uri:'/optic/update/joinDocDescriptors2.json',
doc:{"desc":"test2"},
collections:['fromDocDescriptor', 'write'],
metadata:[{'validStart': "2014-04-03T11:00:00", 'validEnd': "9999-12-31T11:59:59Z"}],
permissions:[xdmp.permission("rest-reader","read"),xdmp.permission("rest-writer","update")],
quality:2
},
];
op.fromDocDescriptors(docsDescriptor)
.write()
.result();
//Performs a join of op.fromDocDescriptors and op.fromLiterals
//It returns
//{"left.doc":{"desc":"test0"}, "right.val":0, "left.uri":"/test/optic/0.json", "right.uri":"/test/optic/0.json"}
//{"left.doc":{"desc":"test5"}, "right.val":5, "left.uri":"/test/optic/5.json", "right.uri":"/test/optic/5.json"}
const op = require('/MarkLogic/optic');
const docsDescriptor = [
{uri:'/test/optic/0.json', doc:{"desc":"test0"}},
{uri:'/test/optic/1.json', doc:{"desc":"test1"}},
{uri:'/test/optic/5.json', doc:{"desc":"test5"}}];
const fromDocDescriptors = op.fromDocDescriptors(docsDescriptor, 'left');
const fromLiteral = op.fromLiterals([
{uri:'/test/optic/0.json', val:0},
{uri:'/test/optic/5.json', val:5}
], 'right')
fromDocDescriptors
.joinInner(fromLiteral)
.where(
op.eq(
op.viewCol('left', 'uri'),
fromLiteral.col('uri')
)
)
.orderBy(op.viewCol('left','uri'))
.result();
Stack Overflow: Get the most useful answers to questions from the MarkLogic community, or ask your own question.