Ich studiere DynamoDB mit Schienen und ich habe Zweifel. Ich kann keine Lösung im Web finden, also Wenn Sie es lösen können, werde ich danken.DynamoDB enthält Wert in einem Array mit Schienen
Der Zweifel ist, wie kann ich Werte in Array auf einer Tabelle gespeichert finden, zum Beispiel:
ich eine Menge Daten in my_table habe, wo es Felder „Zahlen“ genannt, die Arrays wie:
[1,2,3,4]
[3,4,5,6]
[1,3,4,7]
[4,7,8,10]
[8,9,12,14]
[12,14,16,20]
Also, ich möchte alle Einträge auswählen, die Zahlen 1,3,4 enthält. In diesem Fall vier Ergebnisse.
So ist mein Code
result = dynamodb.scan({
table_name: "my_table",
select: "ALL_ATTRIBUTES",
attributes_to_get: ["numbers"],
scan_filter: {
"numbers" => {
attribute_value_list: [1,3,4],
comparison_operator: "CONTAINS"
}
}
})
Aber ich bekomme diese Fehlermeldung: Eine oder mehrere Parameterwerte waren ungültig: Ungültige Anzahl von Argumenten (e) für die ComparisonOperator ENTHÄLT
Wie kann ich dies tun Aktion mit Dynamo DB?
Vielen Dank
Hallo Nabeel, Ich werde es versuchen, aber der Filter ist dynamisch, dann kann dieser Weg ungewöhnlich sein. Aber dieses Beispiel gibt mir ein Licht ... ich werde testen. – sidneivl
Eine Sache zu beachten ist, dass Scan-Filter immer noch die gleichen Kosten in Bezug auf Artikel lesen/schreiben, als ob es eine vollständige Überprüfung wäre. Dies liegt daran, dass die Filterung angewendet wird, nachdem die Daten abgerufen wurden, aber bevor sie an Sie zurückgegeben werden. Sie könnten sie also sehr gut selbst filtern (dies könnte jedoch die Paginierung, die Größenbeschränkung von 1 MB usw. umfassen). –
Ich habe Ihren Weg versucht und einen anderen Weg, aber jetzt habe ich "Stack-Level zu tief" -Fehler, also habe ich Dynamodb und zurück zu Postgres, ich habe das Ergebnis in 2 Zeilen Code. In Zukunft werde ich DynamoDB versuchen, vielleicht ... – sidneivl