2016-11-01 2 views
0

I eine DynamoDB Tabelle haben, die beschrieben wird (Benutzer sollten durch eine eindeutige User_id oder eine Kombination aus Benutzername + system_id wählbar sein) wenn ich den folgenden Code mit dem Primärschlüssel laufen lasse, erhalte ich eine Liste von Datensätzen, wie erwartet:‚Das bereitgestellte Schlüsselelement nicht mit dem Schema übereinstimmen‘ für Sekundärindex

var AWS = require('aws-sdk'); 
var dynamodb = new AWS.DynamoDB({region: 'ap-southeast-2'); 
var userTable = 'auth-users'; 
var key = { user_id: '123412341234' }; 

dynamodb.getItem({ 
    TableName: tableName, 
    Key: key 
}, function(err,data) { 
    console.error('err:',err); 
    console.info('data:', data); 
}); 

... aber wenn ich versuchen, den globalen Sekundärindex zu verwenden, mit Schlüssel zu ersetzen:

var key = { 
    username: {S: 'testuser'}, 
    system_id: {S: 'test-system'} 
}; 

dann bekomme ich eine ValidationException: Das angegebene Schlüsselelement stimmt nicht mit dem Schema überein.

Antwort

0

... nie Geist - RTFM:

Die GetItem Operation liefert einen Satz von Attributen für das Element mit dem gegebenen Primärschlüssel

Um den Sekundärindex benötigen Sie zu verwenden um eine query zu machen und den Indexnamen anzugeben.

Verwandte Themen