首页 > 解决方案 > DynamoDb 中的过滤器表达式

问题描述

我有一个查询 DynamoDb 的 PHP API。我正在尝试通过字符串列表过滤结果

$eav = $marshaler->marshalJson($json);

$params = [
  'TableName' => $tableName,
  'IndexName' => 'tsType-tsTimeclockSortKey-index',
  'FilterExpression' => 'firstName IN :firstName',
  'KeyConditionExpression' => 'type = :type,
  'ExpressionAttributeValues' => $eav
];

我可以根据一个名称进行过滤,但我想发送一个名称列表并返回所有匹配项。如果我发送

{firstName: 'john'}

返回: [firstName:'John',lastName:'doe']

所有的约翰都被退回。当我添加另一个名称时,所有内容都会被过滤掉,API 返回一个空数组

{firstName: 'john, sam'}

返回: []

如果使用 FilterExpression 存在所有 johns 和/或 Sams,我需要更改什么

标签: phpjsonamazon-web-servicesnosqlamazon-dynamodb

解决方案


推荐阅读