2017-12-04 11 views
1

Sesamの使用私はヌルプロパティの束を残しています。Sesam DTLのnullプロパティを削除します

DTLで完全にnullのプロパティをスキップする方法を教えてください。 これを行うDTLの例は素晴らしいでしょう。

{ 
    "address": "37484 Mohr Freeway\nNew Myrnaview, MI 89092", 
    "birth_date": "2001-02-18", 
    "column1": "01ba3bc2-8e22-4971-9683-b2ae05a39cd1", 
    "column2": "null", 
    "company": "Fay-Cole", 
    "credit_card": "4049553515365", 
    "first_name": "Dummy", 
    "home_page": "http://www.mante.com/faq/", 
    "job": "Airline pilot", 
    "last_name": "User", 
} 

:から

{ 
    "address": "37484 Mohr Freeway\nNew Myrnaview, MI 89092", 
    "birth_date": "2001-02-18", 
    "column1": "01ba3bc2-8e22-4971-9683-b2ae05a39cd1", 
    "company": "Fay-Cole", 
    "credit_card": "4049553515365", 
    "first_name": "Dummy", 
    "home_page": "http://www.mante.com/faq/", 
    "job": "Airline pilot", 
    "last_name": "User", 
} 
+0

は手の込んだしてください。あなたが達成しようとしている目標は何ですか?これにより、人々があなたの質問を手助けするのが容易になります。 –

答えて

1

これは、 "マージ"、 "キー値" の組み合わせを使用して解決し、機能を "適用する" ことができますここに示すように:

{ 
    "_id": "remove-null-values", 
    "type": "pipe", 
    "source": { 
    "type": "embedded", 
    "entities": [{ 
     "_id": "foo", 
     "bar": "baz", 
     "foo": null 
    }] 
    }, 
    "transform": { 
    "type": "dtl", 
    "rules": { 
     "default": [ 
     ["merge", 
      ["apply", "drop-nulls", 
      ["key-values", "_S."] 
      ] 
     ] 
     ], 
     "drop-nulls": [ 
     ["filter", 
      ["is-not-null", "_S.value"] 
     ], 
     ["merge", 
      ["dict", "_S.key", "_S.value"] 
     ] 
     ] 
    } 
    } 
} 

結果は次のようになります。ここで

[ 
    { 
    "_id": "foo", 
    "bar": "baz" 
    } 
] 
1

された2つの異なる溶液:

代替1:

{ 
    "_id": "test", 
    "type": "pipe", 
    "source": { 
    "type": "embedded", 
    "entities": [{ 
     "_id": "test", 
     "a": 1, 
     "b": null, 
     "c": 2, 
     "d": null 
    }] 
    }, 
    "transform": { 
    "type": "dtl", 
    "rules": { 
     "default": [ 
     ["copy", "*"], 
     ["remove", 
      ["filter", 
       ["is-null", 
       ["path", "_.", "_T."] 
       ], 
       ["keys", "_T."] 
      ] 
     ] 
     ] 
    } 
    } 
} 

代替2:

{ 
    "_id": "test", 
    "type": "pipe", 
    "source": { 
    "type": "embedded", 
    "entities": [{ 
     "_id": "test", 
     "a": 1, 
     "b": null, 
     "c": 2, 
     "d": null 
    }] 
    }, 
    "transform": { 
    "type": "dtl", 
    "rules": { 
     "default": [ 
     ["copy", "*"], 
     ["remove", 
      ["map", 
      ["first", "_."], 
      ["filter", 
       ["is-null", 
       ["last", "_."] 
       ], 
       ["items", "_T."] 
      ] 
      ] 
     ] 
     ] 
    } 
    } 
} 

第三の選択:

{ 
    "_id": "test", 
    "type": "pipe", 
    "source": { 
    "type": "embedded", 
    "entities": [{ 
     "_id": "test", 
     "a": 1, 
     "b": null, 
     "c": 2, 
     "d": null 
    }] 
    }, 
    "transform": { 
    "type": "dtl", 
    "rules": { 
     "default": [ 
     ["copy", "*"], 
     ["remove", 
      ["map", 
      ["nth", 0, "_."], 
      ["filter", 
       ["is-null", 
       ["nth", 1, "_."] 
       ], 
       ["items", "_T."] 
      ] 
      ] 
     ] 
     ] 
    } 
    } 
} 

結果:

[ 
    { 
    "_id": "test", 
    "a": 1, 
    "c": 2 
    } 
] 
関連する問題