sql >> Databáze >  >> NoSQL >> MongoDB

Způsob hlubokého procházení objektu Groovy s tečkou v řetězci pomocí GPath

Na základě chyby/vlákna se zdá, že existují určité problémy s nejednoznačností s podporou přístupového objektu tečkované vlastnosti. Na základě vlákna konference by se zdálo, že vyhodnocení řetězce queryField by bylo nejlepší:

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

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

Skript na Groovy Web Console

Vlákno e-mailové konference je trochu staré, takže existuje nová třída (od 1.7.2) Eval, která může pomoci se spouštěním malých úryvků, které nemají velkou vazbu.

V opačném případě můžete rozdělit řetězec a rekurzivně provádět vyhodnocení vlastností objektu, čímž efektivně reprodukujete podmnožinu chování procházení GPath.




  1. Nelze se připojit k MongDB Atlas pomocí Mongoose

  2. Jak zruším nastavení všech polí kromě známé sady polí?

  3. Express JS Zobrazení dat podle ID

  4. Skupinové pole po uvolnění a zápase