5

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

我想在摄取期间使用 javascript 转换内容

我的 JSON 文件如下所示:

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

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

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

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

4

1 回答 1

3

在此处查看示例:http: //docs.marklogic.com/guide/mlcp/import#id_26044

原始输入文档应采用以下形式:

{ uri: string,
  value: 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;

顺便说一句,在 MarkLogic 中使用 JSON 时,这是一个有用的资源。

于 2016-04-08T18:10:12.647 回答