Manera de atravesar en profundidad un objeto Groovy con un punto en cadena usando GPath

La situación que tengo es que estoy consultando MongoDB con una cadena para un campo que tiene más de un nivel de profundidad en la jerarquía de objetos. Esta consulta debe ser una cadena. Entonces, por ejemplo, estoy buscando algo como esto en Groovy:

def queryField = 'a.b.c'  //this is variable and can be different every time
def result = mongodb.collection.findOne([queryField:5])

No surge el problema de que en el resultado quiero encontrar el valor del campo anidado. Con GPath podría ir un nivel más profundo y obtener el valor de a haciendo esto

def aObj = result."a"  //or result["a"]

Sin embargo, quiero ir más profundo que eso haciendo algo como esto:

def queryField = "a.b.c"       //this can change every time and is not always 'a.b.c'
def cObj = result[queryField]  //since field is variable, can't just assume result.a.b.c

Esto no funciona en Groovy en este momento. Hay un error registradoaqu, pero me preguntaba si hay una mejor solución para usar en este escenario que es un poco más limpio que analizar la cadena al dividir en el punto y luego construir el recorrido del objeto. Tenga en cuenta que "a.b.c" es variable y desconocido en tiempo de ejecución (por ejemplo, podría ser "a.b.d").

Respuestas a la pregunta(2)

Su respuesta a la pregunta