2016-04-08 12 views
5

Tôi có tệp JSON "tổng hợp" mà tôi muốn chia nhỏ và nhập nhiều tài liệu vào MarkLogic bằng cách sử dụng mlcp.marklogic mlcp tùy chỉnh chuyển đổi chia tài liệu tổng hợp thành nhiều tệp

Tôi muốn transform the content during ingestion using javascript.

tệp JSON của tôi trông giống như sau:

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

... và tôi muốn chạy tập tin này qua MLCP để mỗi tài liệu có chứa một mục trong mảng.

tức là một tài liệu sẽ chứa {blobA}, tài liệu khác sẽ chứa {blobB} và một tài liệu khác sẽ chứa {blobC} .... v.v.

Làm cách nào để viết mô-đun biến đổi .sjs tùy chỉnh của tôi?

Trả lời

1

Kiểm tra các ví dụ ở đây: http://docs.marklogic.com/guide/mlcp/import#id_26044

Tài liệu đầu vào ban đầu dự kiến ​​sẽ có dạng sau:

{ uri: string, 
 
    value: node 
 
}

Đó cũng là hình thức đầu ra dự kiến ​​cho mỗi tài liệu. Bạn cũng sẽ muốn sự trở lại của bạn là kiểu tài liệu-nút, vì bạn muốn mlcp tách nó ra và nhập nó dưới dạng tài liệu JSON.

Vì vậy, .sjs bạn tùy chỉnh chuyển đổi mô-đun sẽ giống như thế này ....

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;

Là một sang một bên, đây là một useful resource when working with JSON in MarkLogic.

Các vấn đề liên quan