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代碼中的結果。