sql >> Databasteknik >  >> NoSQL >> MongoDB

Sätt att djuppassera ett Groovy-objekt med prick i sträng med GPath

Baserat på buggen/tråden verkar det finnas några oklarhetsproblem med att stödja en prickad egenskapsaccessor. Baserat på e-postlisttråden verkar det som att utvärdering av queryField-strängen skulle vara din bästa insats:

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

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

Script på Groovy Web Console

E-postlisttråden är lite gammal, så det finns en ny-ish (sedan åtminstone 1.7.2) Eval-klass som kan hjälpa till med att köra små utdrag som inte har en stor bindning.

Annars kan du dela strängen och rekursivt göra egenskapsutvärderingar på objektet, vilket effektivt reproducerar en delmängd av GPath-traversalbeteende.




  1. Sortering på Flera fält mongo DB

  2. Microservices Architecture för mycket frekvent dataåtkomst; i minneslösningar?

  3. MongoDB:hur man hittar dokument som ignorerar skiftlägeskänslighet, accenter och procent som logik (%)

  4. Återanvända databasanslutningar med Azure-funktioner med hjälp av Javascript