sql >> データベース >  >> NoSQL >> MongoDB

GPathを使用して文字列にドットを含むGroovyオブジェクトを深くトラバースする方法

    バグ/スレッドに基づくと、ドット付きプロパティアクセサーのサポートにはあいまいな問題があるように思われます。メーリングリストのスレッドに基づくと、queryField文字列を評価することが最善の策であるように思われます。

    def result = [a: [b: [c: 42]]]
    def queryString = 'a.b.c'
    
    def evalResult = Eval.x(result, 'x.' + queryString)
    assert evalResult == 42
    

    GroovyWebコンソールのスクリプト

    メーリングリストのスレッドは少し古いので、大きなバインディングを持たない小さなスニペットの実行に役立つ新しい(少なくとも1.7.2以降の)Evalクラスがあります。

    それ以外の場合は、文字列を分割してオブジェクトのプロパティ評価を再帰的に実行し、GPathトラバーサル動作のサブセットを効果的に再現できます。




    1. node.JSExpressパスポートルーティング

    2. MacでのMongoDBコンパスの実行

    3. 日付を正しく保存する方法は?

    4. Pythonでjson.load中にキーを編集/名前変更するにはどうすればよいですか?