2017-12-12 3 views
1

エンティティの1つがコード1を持ち、もう1つのエンティティがコード2を持つデータセット内のエンティティを照合してマージすることは可能ですか?私は "merge"と "eq"、 "code"、 "code" +1を使ってこれを解決しようとしましたが、これはコード3(これは私が望むものではありません)でエンティティにマージします。固定値のエンティティのマッチングペア

{ 
    "_id": "sample-data", 
    "type": "pipe", 
    "source": { 
    "type": "embedded", 
    "entities": [{ 
     "_id": "a1", 
     "name": "A", 
     "code": 1 
    }, { 
     "_id": "a2", 
     "name": "A", 
     "code": 2 
    }, { 
     "_id": "a3", 
     "name": "A", 
     "code": 3 
    }, { 
     "_id": "b1", 
     "name": "B", 
     "code": 1 
    }] 
    } 
} 

答えて

2

はい。これは、[「場合を」]使用してこれを行うには、いくつかの方法だが、私は[「内の」]を使用して単純な比較使用して希望:あなたのテストデータでこれを実行する

{ 
    "_id": "merge-sample", 
    "type": "pipe", 
    "source": { 
    "type": "merge", 
    "datasets": ["sample-data sd"], 
    "equality": [ 
     ["eq", 
     ["in", "sd.code", 
      ["list", 1, 2] 
     ], 
     ["in", "sd.code", 
      ["list", 1, 2] 
     ] 
     ] 
    ], 
    "identity": "first", 
    "strategy": "compact", 
    "version": 2 
    } 
} 

をこのように見ているデータセットになります:

[ 
    { 
    "$ids": [ 
     "~:sample-data:a1", 
     "~:sample-data:a2", 
     "~:sample-data:b1" 
    ], 
    "sample-data:code": [ 
     1, 
     2 
    ], 
    "sample-data:name": [ 
     "A", 
     "B" 
    ] 
    }, 
    { 
    "$ids": [ 
     "~:sample-data:a3" 
    ], 
    "sample-data:code": 3, 
    "sample-data:name": "A" 
    } 
] 
+0

ここで、問題が正しく記述されていないことがわかりました。アイデアは、異なるコードを持つエンティティをマージすることではありませんでした。そのため、a1とa2をマージし、a3とb1をアンマードにします。 – Baard

関連する問題