VARIATION addImplicitEdges_NoImplicitEdges
input {
    "pipeline": [
        {
            "$lookup": {
                "from": "A",
                "as": "fromA",
                "localField": "a",
                "foreignField": "a"
            }
        },
        {
            "$unwind": {
                "path": "$fromA"
            }
        },
        {
            "$lookup": {
                "from": "B",
                "as": "fromB",
                "localField": "fromA.b",
                "foreignField": "b"
            }
        },
        {
            "$unwind": {
                "path": "$fromB"
            }
        },
        {
            "$lookup": {
                "from": "C",
                "as": "fromC",
                "localField": "fromB.c",
                "foreignField": "c"
            }
        },
        {
            "$unwind": {
                "path": "$fromC"
            }
        },
        {
            "$lookup": {
                "from": "D",
                "as": "fromD",
                "localField": "fromC.d",
                "foreignField": "d"
            }
        },
        {
            "$unwind": {
                "path": "$fromD"
            }
        },
        {
            "$lookup": {
                "from": "E",
                "as": "fromE",
                "localField": "fromD.e",
                "foreignField": "e"
            }
        },
        {
            "$unwind": {
                "path": "$fromE"
            }
        }
    ]
}
output: {
    "graph": {
        "nodes": [
            {
                "collectionName": "test.pipeline_test",
                "accessPath": {
                    "filter": {}
                },
                "embedPath": ""
            },
            {
                "collectionName": "test.A",
                "accessPath": {
                    "filter": {}
                },
                "embedPath": "fromA"
            },
            {
                "collectionName": "test.B",
                "accessPath": {
                    "filter": {}
                },
                "embedPath": "fromB"
            },
            {
                "collectionName": "test.C",
                "accessPath": {
                    "filter": {}
                },
                "embedPath": "fromC"
            },
            {
                "collectionName": "test.D",
                "accessPath": {
                    "filter": {}
                },
                "embedPath": "fromD"
            },
            {
                "collectionName": "test.E",
                "accessPath": {
                    "filter": {}
                },
                "embedPath": "fromE"
            }
        ],
        "edges": [
            {
                "predicates": [
                    {
                        "op": "eq",
                        "left": {"$numberInt":"0"},
                        "right": {"$numberInt":"1"}
                    }
                ],
                "left": {"$numberInt":"0"},
                "right": {"$numberInt":"1"}
            },
            {
                "predicates": [
                    {
                        "op": "eq",
                        "left": {"$numberInt":"2"},
                        "right": {"$numberInt":"3"}
                    }
                ],
                "left": {"$numberInt":"1"},
                "right": {"$numberInt":"2"}
            },
            {
                "predicates": [
                    {
                        "op": "eq",
                        "left": {"$numberInt":"4"},
                        "right": {"$numberInt":"5"}
                    }
                ],
                "left": {"$numberInt":"2"},
                "right": {"$numberInt":"3"}
            },
            {
                "predicates": [
                    {
                        "op": "eq",
                        "left": {"$numberInt":"6"},
                        "right": {"$numberInt":"7"}
                    }
                ],
                "left": {"$numberInt":"3"},
                "right": {"$numberInt":"4"}
            },
            {
                "predicates": [
                    {
                        "op": "eq",
                        "left": {"$numberInt":"8"},
                        "right": {"$numberInt":"9"}
                    }
                ],
                "left": {"$numberInt":"4"},
                "right": {"$numberInt":"5"}
            }
        ]
    },
    "resolvedPaths": [
        {
            "nodeId": {"$numberInt":"0"},
            "fieldName": "a"
        },
        {
            "nodeId": {"$numberInt":"1"},
            "fieldName": "a"
        },
        {
            "nodeId": {"$numberInt":"1"},
            "fieldName": "b"
        },
        {
            "nodeId": {"$numberInt":"2"},
            "fieldName": "b"
        },
        {
            "nodeId": {"$numberInt":"2"},
            "fieldName": "c"
        },
        {
            "nodeId": {"$numberInt":"3"},
            "fieldName": "c"
        },
        {
            "nodeId": {"$numberInt":"3"},
            "fieldName": "d"
        },
        {
            "nodeId": {"$numberInt":"4"},
            "fieldName": "d"
        },
        {
            "nodeId": {"$numberInt":"4"},
            "fieldName": "e"
        },
        {
            "nodeId": {"$numberInt":"5"},
            "fieldName": "e"
        }
    ],
    "prefix": [
        {
            "$lookup": {
                "from": "A",
                "as": "fromA",
                "localField": "a",
                "foreignField": "a"
            }
        },
        {
            "$unwind": {
                "path": "$fromA"
            }
        },
        {
            "$lookup": {
                "from": "B",
                "as": "fromB",
                "localField": "fromA.b",
                "foreignField": "b"
            }
        },
        {
            "$unwind": {
                "path": "$fromB"
            }
        },
        {
            "$lookup": {
                "from": "C",
                "as": "fromC",
                "localField": "fromB.c",
                "foreignField": "c"
            }
        },
        {
            "$unwind": {
                "path": "$fromC"
            }
        },
        {
            "$lookup": {
                "from": "D",
                "as": "fromD",
                "localField": "fromC.d",
                "foreignField": "d"
            }
        },
        {
            "$unwind": {
                "path": "$fromD"
            }
        },
        {
            "$lookup": {
                "from": "E",
                "as": "fromE",
                "localField": "fromD.e",
                "foreignField": "e"
            }
        },
        {
            "$unwind": {
                "path": "$fromE"
            }
        }
    ],
    "suffix": []
}

