Dynamodb 查询 - KeyConditionExpression 中的 OR 条件 [英] Dynamodb query - OR condition in KeyConditionExpression

查看:28
本文介绍了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)

请参阅 ExpressionAttributeValuesKeyConditionExpression

这篇关于Dynamodb 查询 - KeyConditionExpression 中的 OR 条件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆