MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Möglichkeit, ein Groovy-Objekt mit einem Punkt in einer Zeichenfolge mit GPath tief zu durchqueren

Basierend auf dem Fehler/Thread scheint es einige Mehrdeutigkeitsprobleme bei der Unterstützung eines gepunkteten Eigenschaftszugriffs zu geben. Basierend auf dem Mailinglisten-Thread scheint es, dass die Auswertung des queryField-Strings die beste Wahl wäre:

def result = [a: [b: [c: 42]]]
def queryString = 'a.b.c'

def evalResult = Eval.x(result, 'x.' + queryString)
assert evalResult == 42

Skript auf Groovy Web Console

Der Mailinglisten-Thread ist etwas alt, daher gibt es eine neue (mindestens seit 1.7.2) Eval-Klasse, die dabei helfen kann, kleine Snippets auszuführen, die keine große Bindung haben.

Andernfalls können Sie die Zeichenfolge aufteilen und rekursiv Eigenschaftsauswertungen für das Objekt durchführen, wodurch effektiv eine Teilmenge des GPath-Durchlaufverhaltens reproduziert wird.