Dynamodb提供的三种查询操作:
GetItem 明确主键的查询
Query 带条件的查询
Scan 不带条件的查询
people_id |
people_name |
year_of_birth |
100 | Tom | 1999 |
101 | Jim | 1999 |
102 | Lucy | 1999 |
103 | Dacy | 1999 |
103 | Dacy-2 | 1999 |
假设 people_id 为分区键 name 为排序键
GetItem 明确主键的查询
aws dynamodb get-item --table-name People --key '{"people_id":{"N":"100"}, "name": {"S": "Tom"}}' --endpoint-url http://localhost:8000
如果是复合主键的情况下,需要同时提供分区键和排序键。
Query 带条件的查询
如果是复合主键的情况下,允许只提供分区键进行查询:
aws dynamodb query --table-name People --key-condition-expression "people_id=:id" --expression-attribute-values '{":id":{"N":"100"}}' --endpoint-url http://localhost:8000
也可以同时携带分区键和排序键进行查询:
aws dynamodb query --table-name People --key-condition-expression "people_id=:id and people_name=:na" --expression-attribute-values '{":id":{"N":"103"}, ":na":{"S":"Dacy-2"}}' --endpoint-url http://localhost:8000
分区键只允许等式条件,而排序键可以使用 = > < <= >= between begins_with 等条件表达式:
aws dynamodb query --table-name People --key-condition-expression "people_id=:id and begins_with(people_name, :dt)" --expression-attribute-values '{":id":{"N":"103"}, ":dt":{"S":"Dac"}}' --endpoint-url http://localhost:8000