我有一个JSON“聚合”文件,我希望使用mlcp将多个文档拆分并摄取到MarkLogic中。
我想transform the content during ingestion using javascript。
我的JSON文件如下所示:
{
"type": "FeatureCollection",
"features": [
{blobA}, {blobB}, {blobC} ......
]
}
...我希望通过MLCP运行此文件,以便每个文档都包含数组中的项目。
即。一个文档将包含{blobA},另一个文档将包含{blobB},另一个文档将包含{blobC} ....等等。
如何编写自定义.sjs转换模块?
答案 0 :(得分:2)
点击此处的示例: http://docs.marklogic.com/guide/mlcp/import#id_26044
原始输入文档应具有以下形式:
{ uri: string,
value: node
}

这也是每个文档的预期输出形式。您还希望返回类型为document-node,因为您希望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;