0

Je travaille sur un projet et que nous utilisons comme base de données DynamoDB et j'ai un document avec cette structure:recherche dans une liste à l'aide 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" 
     } 
     ] 
    } 

j'ai deux indexs la boutique-id- index et email-index, ce que je veux faire est d'obtenir le Shoper avec l'e-mail « [email protected] » dans le shop_id « hh-delightme »

j'ai essayé ce code mais sans succès

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

     }; 

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

Quelqu'un peut-il m'aider à faire cela, merci

Répondre

2

Je crois que vous ne pouvez pas interroger deux index en même temps. Vous pouvez soit modifier votre requête pour une analyse - mais ce sera plus lent car il va analyser la table entière pour chaque requête - ou vous pouvez interroger un seul de vos index. Je voudrais interroger l'index que vous pensez retournera le plus petit nombre de résultats, probablement email, et ensuite filtrer les résultats dans votre code nodejs par shop_id.