HI DynamoDB Community, P>
Donc, la table en question est MLA_USER_AUTH. Comme vous le voyez, il a une clé de cloison et une clé de tri. Je veux pouvoir interroger la base de données à l'aide de User_id et d'email. P>
Parfois, j'ai besoin de trouver l'utilisateur associé à l'e-mail et parfois à l'ID utilisateur. Les attributs d'email et d'userid sont uniques pour chaque visiteur. Y a-t-il une façon que cela puisse être fait? p>
Ceci est ma requête actuelle. Cela ne fonctionne évidemment pas. Comme il lance l'erreur: validationException: condition de requête Elément de schéma de clé manquée: userid p> est ma seule option. Toute aide appréciée p> merci,
Ninjasoar p> p>
3 Réponses :
Vous ne pouvez pas Query code> sans la clé de partition, mais vous pouvez
numériser code>. http: // docs .aws.aMazon.com / Amazondynamodb / Dernier / GestartedGuide / GetStarted.nodejs.04.html # Stetarted.nodejs.04.Scan P>
As Mark B, vous avez besoin de la clé de partition sur Donc, la seule solution pour vous est de créer un GSI avec Query code> - Vous ne pouvez pas le faire en utilisant la clé de tri unique. P>
e-mail code> comme clé de partition. P>
On peut scanner avec ceux-ci. Je n'ai pas vu cela scanna plus d'un enregistrement. Je recommanderais de numériser avec la touche de tri et les performances de la caisse.
Un indice secondaire voudrait que vous souhaitiez.
// definition { TableName: "MLA_USER_AUTH", AttributeDefinitions:[ { AttributeName: "Email", AttributeType: "S" } ], GlobalSecondaryIndexUpdates: [ { Create: { IndexName: "emailIndex", KeySchema: [ {AttributeName: "Email", KeyType: "HASH"} ] } } ] } // Query { TableName : "MLA_USER_AUTH", IndexName: "emailIndex", KeyConditionExpression: "Email = :email", ExpressionAttributeValues:{ ":email": { "S" : email } } }