在 dynamoDB 中使用 "contains" 作为查询键条件
using "contains" for query key condition in dynamoDB
我正在尝试使用包含比较参数查询我的 dynamodb,但它不起作用
data= table.query(
IndexName='farm_name-index',
KeyConditionExpression = Key('user_name').eq(user_name)& contains(Key('farm_zone_id_time_stamp'),farm_zone_id_time_stamp)& Key('time_stamp').between(from_time,to_time)
)
我收到以下错误:
name 'contains' is not defined: NameError
Traceback (most recent call last):
File "/var/task/lambda_function.py", line 25, in lambda_handler
KeyConditionExpression = Key('user_name').eq(user_name)& contains(Key('farm_zone_id_time_stamp'),farm_zone_id_time_stamp)& Key('time_stamp').between(from_time,to_time)
NameError: name 'contains' is not defined
谁能告诉我正确的方法吗?
您不能对排序键执行包含操作。您只能执行相等、begins_with 或比较运算符。
为什么?因为这些运算符可以有效地从排序列表中提取数据,例如放在排序键下。
借助 DynamoDB,您可以对包含之类的内容使用过滤器表达式。它不是索引优化的。
我正在尝试使用包含比较参数查询我的 dynamodb,但它不起作用
data= table.query(
IndexName='farm_name-index',
KeyConditionExpression = Key('user_name').eq(user_name)& contains(Key('farm_zone_id_time_stamp'),farm_zone_id_time_stamp)& Key('time_stamp').between(from_time,to_time)
)
我收到以下错误:
name 'contains' is not defined: NameError
Traceback (most recent call last):
File "/var/task/lambda_function.py", line 25, in lambda_handler
KeyConditionExpression = Key('user_name').eq(user_name)& contains(Key('farm_zone_id_time_stamp'),farm_zone_id_time_stamp)& Key('time_stamp').between(from_time,to_time)
NameError: name 'contains' is not defined
谁能告诉我正确的方法吗?
您不能对排序键执行包含操作。您只能执行相等、begins_with 或比较运算符。
为什么?因为这些运算符可以有效地从排序列表中提取数据,例如放在排序键下。
借助 DynamoDB,您可以对包含之类的内容使用过滤器表达式。它不是索引优化的。