Dynamodb 查询 - KeyConditionExpression 中的 OR 条件 [英] Dynamodb query - OR condition in KeyConditionExpression
本文介绍了Dynamodb 查询 - KeyConditionExpression 中的 OR 条件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个以 feed_guid
作为全局二级索引的 DynamoDB 表.我想用该表中的一组 feed_guid
进行查询.由于 feed_guid
不是我的主键,我不能使用 getBatchItem
.当我尝试以下方法时,我得到了这个错误:
I have a DynamoDB table with feed_guid
as the global secondary index. I want to query with a set of feed_guid
in that table. Since feed_guid
is not my primary keys, I can't use getBatchItem
. When I tried the following method, I got this error:
KeyConditionExpression 中使用了无效的运算符:OR
Invalid operator used in KeyConditionExpression: OR
$options = array(
'TableName' => 'feed',
'IndexName' => 'GuidIndex',
'KeyConditionExpression' => 'feed_guid = :v_guid1 or feed_guid = :v_guid2',
'ExpressionAttributeValues' => array (
':v_guid1' => array('S' => '8a8106e48bdbe81bf88d611f4b2104b5'),
':v_guid2' => array('S' => '19cab76242a6d85717de64fe4f8acbd4')
),
'Select' => 'ALL_ATTRIBUTES',
);
$response = $dynamodbClient->query($options);
推荐答案
你不能使用 OR
条件.你应该使用
You can't use OR
condition. You should use
rangeAttributeName BETWEEN :rangeval1 AND :rangeval2
如果可能的话或
feed_guid IN (:v_guid1, :v_guid2)
请参阅 ExpressionAttributeValues和 KeyConditionExpression
这篇关于Dynamodb 查询 - KeyConditionExpression 中的 OR 条件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文