Uid functionality in multiple mutations

With this mutation, the Graph is plotted as two different bookings but sharing the same vehicle and the driver

{
  "set": [{
        "crn": 4820651604,
  			"uid" : "_:4820651604",
        "vehicle": [
            {
                "uid": "_:ABCD",
                "car_number": "ABCD",
                "original_car_category": "luxury_sedan"
            }
        ],
        "driver": [
            {
                "uid": "_:1350000000227531",
                "driver_imei": "1350000000227531"
            }
        ]
        },
        {
        "crn": 4820651605,
  			"uid" : "_:4820651605",
        "vehicle": [
            {
                "uid": "_:521XEN",
                "car_number": "521XEN",
                "original_car_category": "luxury_sedan"
            }
        ],
        "driver": [
            {
                "uid": "_:1350000000227531",
                "driver_imei": "1350000000227531"
            }
        ]
    }
]
}

Query

{
  view_booking(func: has(crn)) {
    crn
    vehicle {
      uid
      name: car_number
      original_car_category
    }
    driver {
      name: driver_imei
    }
  }
}

While trying to insert data as two separate mutate operation, the Graph is getting plotted as two different bookings, also two different vehicles and driver (even if their uid passed is the same)

How can I make sure same manual uid passed will be the only identifier even in multiple mutation

Hi @dewwrat
The uid blank node ("_:xxx") is not compared across transactions. Please review the upsert block that helps in these scenarios. It allows you to retrieve the uid based on a query use in the mutation (update if uid exists, or insert a new node).