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"
}
]
}
1 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.
Podobne pytania
Nowe pytania
amazon-dynamodb
Amazon DynamoDB to zastrzeżona, kloudnatywna baza danych klucz-wartość i dokumenty o zamkniętym źródle, zoptymalizowana pod kątem skalowania poziomego. Jest to w pełni zarządzana, wieloregionowa baza danych z wieloma wzorcami z wbudowanymi zabezpieczeniami, tworzeniem kopii zapasowych i przywracaniem oraz buforowaniem w pamięci dla aplikacji na skalę internetową. DynamoDB jest hostowane na platformie AWS, ale ma również opcję lokalnego wdrożenia tylko do programowania i testowania funkcjonalnego. Używane na amazon.com.