marklogic mlcp自定义转换将聚合文档拆分为多个文件

时间:2016-04-08 18:06:39

标签: javascript json marklogic mlcp

我有一个JSON“聚合”文件,我希望使用mlcp将多个文档拆分并摄取到MarkLogic中。

我想transform the content during ingestion using javascript

我的JSON文件如下所示:

{
  "type": "FeatureCollection",
  "features": [
    {blobA}, {blobB}, {blobC} ......
    ]
 }

...我希望通过MLCP运行此文件,以便每个文档都包含数组中的项目。

即。一个文档将包含{blobA},另一个文档将包含{blobB},另一个文档将包含{blobC} ....等等。

如何编写自定义.sjs转换模块?

1 个答案:

答案 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;




另外,这是useful resource when working with JSON in MarkLogic