jen*_*fer 5 javascript json marklogic mlcp
我有一个JSON"聚合"文件,我希望使用mlcp将多个文档拆分并摄取到MarkLogic中.
我的JSON文件看起来像这样:
{
"type": "FeatureCollection",
"features": [
{blobA}, {blobB}, {blobC} ......
]
}Run Code Online (Sandbox Code Playgroud)
...我希望通过MLCP运行此文件,以便每个文档包含数组中的项目.
即一个文档将包含{blobA},另一个文档将包含{blobB},另一个文档将包含{blobC} ....等等.
如何编写自定义.sjs转换模块?
查看此处的示例: http ://docs.marklogic.com/guide/mlcp/import#id_26044
原始输入文档预计采用以下形式:
{ uri: string,
value: node
}Run Code Online (Sandbox Code Playgroud)
这也是每个文档的预期输出形式。您还希望返回的类型为文档节点,因为您希望 mlcp 将其拆分并将其摄取为 JSON 文档。
所以,你的 .sjs 自定义转换模块看起来像这样......
function splitFeatures(doc) {
const features = doc.value.toObject().features;
return xdmp.arrayValues(
features.map(function(feature) {
return {
uri: '/path/itemhere-' + xdmp.random() + '.json',
value: xdmp.toJSON(feature)
}
})
);
}
exports.transform = splitFeatures;Run Code Online (Sandbox Code Playgroud)
顺便说一句,在 MarkLogic 中使用 JSON 时,这是一个有用的资源。