Jak można filtrować zagnieżdżone atrybuty w tablicy? Na przykład za pomocą poniższego schematu, jak skanować w poszukiwaniu lokalizacji z identyfikatorem_lokalizacji „xxxx”?

{
    "locations": [
        {
            "location_id": "xxxx",
            "location_name": "location x"
        },
        {
            "location_id": "yyyyy",
            "location_name": "location y"
        }
    ]

}
0
czolbe 31 październik 2018, 09:19

1 odpowiedź

Najlepsza odpowiedź

Niestety Dynamo nie obsługuje wyrażenia warunkowego contains(), w którym ścieżka jest zagnieżdżona w zestawie.

Na przykład byłby w stanie obsługiwać contains(locations, xxxx), gdyby lokalizacje nie były zbiorem map, ale nie mogą zrobić contains(locations.location_id, xxxx) lub locations. contains(location_id, xxxx).

Jednak w tym przypadku używasz wyrażenia filtrującego i ważne jest, aby zrozumieć, że wyrażenia filtrujące są stosowane po danych pobraniu z tabeli i za pobranie tych danych naliczono opłatę . Oznacza to, że jedyną prawdziwą zaletą korzystania z nich jest to, że przesyłasz (zwykle za darmo) mniej danych i otrzymujesz mniej danych z powrotem w kliencie.

Oznacza to, że w przypadku „złożonych” filtrów, takich jak chcesz, równie opłacalne jest samodzielne filtrowanie zwróconych wyników.

0
thomasmichaelwallace 31 październik 2018, 13:49