我學習Dynamodb和我裝,現在在http://localhost:8000/shell查詢在dynamodb殼近10項
帶有一個殼本地服務器..我創建瞭如下表:
var serverUpTimeTableName = 'bingodrive_server_uptime';
var eventUpTimeColumn = 'up_time';
var params = {
TableName: serverUpTimeTableName,
KeySchema: [ // The type of of schema. Must start with a HASH type, with an optional second RANGE.
{ // Required HASH type attribute
AttributeName: eventUpTimeColumn,
KeyType: 'HASH',
},
],
AttributeDefinitions: [ // The names and types of all primary and index key attributes only
{
AttributeName: eventUpTimeColumn,
AttributeType: 'N', // (S | N | B) for string, number, binary
},
],
ProvisionedThroughput: { // required provisioned throughput for the table
ReadCapacityUnits: 2,
WriteCapacityUnits: 2,
}
};
dynamodb.createTable(params, callback);
所以我只用一個叫做up_time的散列鍵創建了一個表,這實際上是表中唯一的項目。
現在我想讀取最後10插入了倍。
到目前爲止,我創建了以下代碼:
var serverUpTimeTableName = 'bingodrive_server_uptime';
var eventUpTimeColumn = 'up_time';
var params = {
TableName: serverUpTimeTableName,
KeyConditionExpression: eventUpTimeColumn + ' != :value',
ExpressionAttributeValues: {
':value':0
},
Limit: 10,
ScanIndexForward: false
}
docClient.query(params, function(err, data) {
if (err) ppJson(err); // an error occurred
else ppJson(data); // successful response
});
確定..這麼幾件事情需要注意:
- 我並不真的需要一個KeyCondition。我只想要最後10個項目,所以我使用
Limit 10
作爲極限,ScanIndexForward:false
作爲相反順序。 !=
或NE
在哈希鍵的鍵表達式不支持。似乎我必須在查詢中使用某種索引..困惑於此。
所以..關於這個問題的任何信息,將不勝感激。