0

我工作的一个项目,我们正在使用Dynamodb数据库和我有这个结构的文档:搜索在dynamodb列表中使用的NodeJS

{ 
    "shop_id": "hh-delightme", 
    "shoppers": [ 
     { 
     "email": "[email protected]", 
     "name": "hatim haffane" 
     }, 
     { 
     "email": "[email protected]", 
     "name": "bxdsf sdf sd f" 
     } 
    ] 
    },{ 
    "shop_id": "it-delightme", 
    "shoppers": [ 
     { 
     "email": "[email protected]", 
     "name": "hatim haffane" 
     }, 
     { 
     "email": "[email protected]", 
     "name": "bxdsf sdf sd f" 
     } 
     ] 
    } 

我有两个指数法的店ID-指数和电子邮件的指数,所以我想要做的是在shop_id“HH-delightme”

电子邮件“[email protected]”来获得shoper我想这代码,但没有成功

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

     }; 

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

任何一个可以帮助我做到这一点,谢谢

回答

2

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