繁体   English   中英

如何在DynamoDB中查询一列的所有行?

[英]How to query all rows of one column in DynamoDB?

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

谢谢。

您绝对应该使用扫描操作 检查文档以使用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

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

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

import boto3

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

     return resp['Items']

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM