2016-03-17 3 views
11

Kann nach geschachtelten Eigenschaften in der AWS DynamoDB-Konsole gesucht werden? Ich bin in der Lage, alle Eigenschaften der obersten Ebene zu durchsuchen, aber die Suche nach verschachtelten Eigenschaften führt immer zu leeren Ergebnismengen.Suche nach verschachtelter Eigenschaft in DynamoDB AWS-Konsole nicht möglich

Zum Beispiel für das Dokument unter ich in der Lage bin zu scannen und Filter auf jedem Top-Level-Feld hinzuzufügen, wie id, Name usw.

Allerdings vermögen mich nicht zu scannen, und Filter auf dem Gerät. Ich versuche, den Filter als device.name 'Xaomi' =

{ id: 'jhfdgu75457y8r', Name: 'Parag', Gerät: {name: 'Xaomi', Land: 'China'} }

Bitte beachten Sie, dass ich dies aus der AWS-Konsole und nicht irgendeine Client-Bibliothek tun. Ermöglicht die AWS-Konsole Filter für verschachtelte Objekte?

+1

Ich habe das gleiche Problem. ---- Außerdem habe ich in Code (NodeJS) überprüft, dass es möglich ist, auf eine geschachtelte Eigenschaft zu filtern. Dies kann mit ** FilterExpressions ** erfolgen. –

Antwort

-1

Im Filtertyp "Gerät" und nicht device.name und wählen Sie "Enthält" statt "=" in den Drop-down-

0

Alle Daten in DynamoDB stored as either a string, binary or number ist.

Wenn Sie SDK für den Zugriff auf DynamoDB verwenden, werden diese Primekarten normalerweise in komplexe Datentypen wie Listen und Maps konvertiert und nicht konvertiert.

Die Konsole funktioniert nur mit den primativen Datentypen. In diesem Fall wird Ihr Geräteattribut als Zeichenfolge behandelt und Sie können daher nicht nach dem verschachtelten Attribut device.name filtern.

Sie können jedoch einfach einen String-Filter tun. Zum Beispiel Filter auf das Gerät Attribut, mit der enthält Operator und den Wert "name":"Xaomi"