按照此链接:
Supported Operations on DynamoDB
“你可以查询只能有一个复合主键(分区键和排序键)表”。
这似乎并不正确,虽然。我在DynamoDB表所谓的“用户”,这有一个主键仅由一个属性“用户名”的。
而我能够在仅使用该属性“用户名”“KeyConditionExpression”到的NodeJS查询该表就好了。请看下面:
var getUserByUsername = function (username, callback) {
var dynamodbDoc = new AWS.DynamoDB.DocumentClient();
var params = {
TableName: "users",
KeyConditionExpression: "username = :username",
ExpressionAttributeValues: {
":username": username
}
};
dynamodbDoc.query(params, function (err, data) {
if (err) {
console.error("Unable to query. Error:", JSON.stringify(err, null, 2));
callback(err, null);
} else {
console.log("DynamoDB Query succeeded.");
callback(null, data);
}
});
}
此代码的工作就好了。所以我想,如果文件不正确,还是我失去了一些东西?
该文档是正确的。
“分区键和排序键 - 一个复合主键,两个属性组成的第一属性是分区密钥,并且第二属性是所述排序键DynamoDB使用分区键的值作为输入到内部哈希函数”。
http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html
如果一个表没有排序键(range属性),那么该组合键只从哈希键建成。其中之一是,结果是,项目将不能进行排序,只要你喜欢(项都受到排序关键字排序)