我只是在短时间内使用AWS DynamoDB。我想知道如何通过此语句(没有WHERE子句)获得相同的结果:
SELECT column1 FROM DynamoTable;
我尝试(但失败了):
import boto3
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('DynamoTable')
from boto3.dynamodb.conditions import Key, Attr
resp = table.query(KeyConditionExpression=Key('column1'))
它需要Key().eq()
或Key().begin_with()
...
我已经尝试使用resp = table.scan()
,但是响应数据太多字段,而我只需要column1
谢谢。
答案 0 :(得分:1)
这使您可以直接获取所需的列,而无需遍历整个数据集
import boto3
def getColumn1Items():
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('DynamoTable')
resp = table.scan(AttributesToGet=['column1'])
return resp['Items']
答案 1 :(得分:0)
您绝对应该使用Scan operation。检查documentation以使用python来实现。
关于如何仅选择可以使用的特定属性:
import boto3
def getColumn1Items():
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('DynamoTable')
response = table.scan()
lst = []
for i in response['Items']:
lst.append(i['column1'])
return lst
您必须遍历整个表并仅获取所需的列。