4

我只是在短时间内使用 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

谢谢。

4

2 回答 2

14

这使您可以直接获取所需的列,而无需遍历整个数据集

import boto3

def getColumn1Items():
     dynamodb = boto3.resource('dynamodb')
     table = dynamodb.Table('DynamoTable')
     resp = table.scan(AttributesToGet=['column1'])

     return resp['Items']
于 2019-10-16T20:06:34.110 回答
3

您绝对应该使用Scan 操作。检查文档以使用 python 实现它。

关于如何选择您可以使用的特定属性:

import boto3

def getColumn1Items():
    dynamodb = boto3.resource('dynamodb')
    table = dynamodb.Table('DynamoTable')
    response = table.scan()

    return [i['column1'] for i in response['Items']]

您必须遍历整个表并获取所需的列。

于 2019-03-05T07:44:54.933 回答