sql >> Database >  >> NoSQL >> MongoDB

Manier om een ​​Groovy-object met punt in string diep te doorkruisen met behulp van GPath

Op basis van de bug/thread lijkt het erop dat er wat onduidelijkheidsproblemen zijn met het ondersteunen van een gestippelde eigenschapaccessor. Op basis van de mailinglijstthread lijkt het erop dat het evalueren van de queryField-reeks de beste keuze zou zijn:

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

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

Script op Groovy Web Console

De mailinglijstthread is een beetje oud, dus er is een nieuwe (sinds minstens 1.7.2) Eval-klasse die kan helpen bij het uitvoeren van kleine fragmenten die geen grote binding hebben.

Anders kunt u de tekenreeks splitsen en recursief eigenschapsevaluaties op het object uitvoeren, waardoor effectief een subset van GPath-traversaalgedrag wordt gereproduceerd.




  1. Hoe bestanden op te slaan in MongoDB?

  2. RMongo dbGetQueryForKeys(), wat is de structuur van sleutels en hoe kan ik ze een subsleutel geven?

  3. Zoeken op meerdere collecties in MongoDB

  4. MongoDB op Vagrant via Port Forwarding probleem