Amazon web services KeyConditionExpression中的Dynamodb查询或条件

Amazon web services KeyConditionExpression中的Dynamodb查询或条件,amazon-web-services,amazon-dynamodb,Amazon Web Services,Amazon Dynamodb,我有一个DynamoDB表,其中feed\u guid作为全局二级索引。我想在该表中查询一组feed\u guid。由于feed\u guid不是我的主键,因此我无法使用getBatchItem。当我尝试以下方法时,出现了以下错误: KeyConditionExpression中使用的运算符无效:或 $options=array( “TableName”=>“提要”, 'IndexName'=>'GuidIndex', 'KeyConditionExpression'=>'feed\u guid

我有一个DynamoDB表,其中
feed\u guid
作为全局二级索引。我想在该表中查询一组
feed\u guid
。由于
feed\u guid
不是我的主键,因此我无法使用
getBatchItem
。当我尝试以下方法时,出现了以下错误:

KeyConditionExpression中使用的运算符无效:或

$options=array(
“TableName”=>“提要”,
'IndexName'=>'GuidIndex',
'KeyConditionExpression'=>'feed\u guid=:v\u guid1或feed\u guid=:v\u guid2',
'ExpressionAttributeValues'=>数组(
“:v_guid1'=>数组('S'=>'8a8106e48bdbe81bf88d611f4b2104b5'),
“:v_guid2'=>数组('S'=>'19cab76242a6d85717de64fe4f8acbd4')
),
'选择'=>'所有属性',
);
$response=$dynamodbClient->query($options);

您不能使用
条件。你应该使用

rangeAttributeName BETWEEN :rangeval1 AND :rangeval2
如果可能,或

feed_guid IN (:v_guid1, :v_guid2)

请参见和

为了实现此处所需的功能,您需要将两个单独的查询合并在一起


目前,DynamoDB只支持在KeyConditionExpression中对散列键和范围键设置一个条件,因为这限制了您搜索的项目,并最终降低了更复杂查询的成本,比如您在这里描述的查询

这是行不通的。它显示“KeyConditionExpression:in中使用的运算符无效”错误。请尝试在之间使用。IN用于表达式AttributeValue必须先读取定义。据我所知,在使用
KeyConditionExpression
时,对
中的
都不支持——不管怎样,在使用查询API时都不支持。IN不起作用。你能不能在Amazon文档中理论上描述的每一处都给出一个“如何使用查询联合”的示例。他们写道“两个单独查询的并集”(我的重点)即,您应该进行两个单独的查询并合并结果