0
AWS DynamoDB DocumentClientを使用して、DynamoDBテーブルを照会しています。私のテーブルには、各エントリの一意のIDを保持する "_id"というプロパティがあります。このIDに基づいてレコードを照会しようとすると、「無効なKeyConditionExpression:構文エラー、トークン:\ "_ \"、近くに\ "_ id \" "というエラーが表示されます。このクエリを作成するコードは次のとおりです。DynamoDB - キー条件式で接頭辞として "_"を使用できないのはなぜですか?
function findById(id) {
//Build query
var params = {};
params.TableName = "recordDev";
params.IndexName = "_id";
params.KeyConditionExpression = '_id = :id';
params.ExpressionAttributeValues = {
':id': id
};
return DynamoDB
.query(params).promise()
.then(function(records) {
return records.Items[0];
})
.catch(function(error) {
return Promise.reject(error);
});
};
私はDynamoDBのためのクエリのparamsを構築するときに「_」を使用してに関して行方不明です何かはありますか?私は似たようなエラーを探してみましたが、私のシナリオのようなものは見つけられませんでした。
これは機能しました。 "_"が付いたものにExpressionAttributeNamesを使用しないと、自動的に動作しない理由は何ですか? – tbergen1
本当に分かりません。おそらくそれは解析メカニズムと関係があります。私は単純な名前の場合、ExpressionAttributeNamesを指定せずに動作することができますが、あまり確かではないと思います。 – gkatzioura