2016-11-19 2 views
0

У меня есть эта таблица:dynamodb: запрос с хэш-ключ только

  • DomainId строка HashKey
  • EMAILID строка RangeKey

мне было интересно, если это возможно запрос эту таблицу с HashKey только, как это:

var AWS = require("aws-sdk"); 
var client = new AWS.DynamoDB.DocumentClient(); 
var dm = 'infodinamica.cl'; 

//Set params 
var params = { 
    TableName : 'table-name', 
    KeyConditionExpression: "DomainId = :dm",  
    ExpressionAttributeValues: { 
     ":dm": dm 
    }, 
    Select: 'COUNT' 
}; 

client.query(params, (err, data) => { 
    if(err) 
     console.log(JSON.stringify(err, null, 2)); 
    else 
     console.log(JSON.stringify(data, null, 2)); 
} 

ps: обратите внимание, что эта таблица имеет HashKey и RangeKey.

+0

Да, это возможно. Вы получаете какую-либо ошибку? – notionquest

+0

@notionquest. Нет, я не ошибаюсь. Я нахожусь в стадии разработки, и я хочу знать, что эта модель может решить мои требования, или если мне нужно установить глобальный вторичный индекс. Спасибо :) –

ответ

3

Да, можно запросить данные с помощью Hash Key только с помощью query API.

Используйте параметр KeyConditionExpression, чтобы указать для ключа раздела определенное значение . Операция запроса вернет все элементы из таблицы или индекса с этим значением ключа раздела. Вы можете опционально сузить область действия запроса, указав значение ключа сортировки и оператор сравнения в KeyConditionExpression. Вы можете использовать параметр ScanIndexForward для получения результатов в прямом направлении или в обратном порядке, по клавише сортировки.

Смежные вопросы