使用nodejs在dynamodb中的列表中搜索

时间:2017-09-14 19:21:04

标签: javascript node.js amazon-web-services amazon-dynamodb hapijs

我正在开发一个项目,我们使用Dynamodb作为数据库,我有一个具有这种结构的文档:

{
   "shop_id": "hh-delightme",
   "shoppers": [
      {
        "email": "hatim.haffane@gmail.com",
        "name": "hatim haffane"
       },
       {
         "email": "xxx.zzz@gmail.com",
         "name": "bxdsf sdf sd f"
       }
     ]
  },{
   "shop_id": "it-delightme",
   "shoppers": [
       {
         "email": "hatim.haffane@gmail.com",
         "name": "hatim haffane"
        },
        {
         "email": "xxx.zzz@gmail.com",
         "name": "bxdsf sdf sd f"
        }
      ]
    }

我有两个索引是shop-id-index和email-index,所以我想做的是在shop_id“hh-delightme”中使用电子邮件“hatim.haffane@gmail.com”获取浅滩/ p>

我尝试了这段代码,但没有成功

var params = {
            TableName:"shopper",
            KeyConditionExpression:"shop_id = :shop_id AND email = :email",
            ExpressionAttributeValues: {
                ":shop_id":store,
                ":email":email
            }

        };

        docClient.query(params, function(err, data) {}

任何人都可以帮我完成这件事,谢谢

1 个答案:

答案 0 :(得分:2)

我相信你不能同时查询两个索引。 您可以将查询更改为扫描 - 但这会更慢,因为它将扫描每个查询的整个表 - 或者您只能查询其中一个索引。 我查询您认为会返回最少结果数量的索引(可能是电子邮件),然后按shop_id过滤nodejs代码中的结果。