【问题标题】:dynamodb: query with hash key onlydynamodb:仅使用哈希键查询
【发布时间】:2016-11-19 21:06:50
【问题描述】:

我有这张桌子:

  • 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。

【问题讨论】:

  • 是的,有可能。你有什么错误吗?
  • @notionquest。不,我没有收到任何错误。我处于设计阶段,我想知道这个模型可以解决我的需求,或者我是否需要设置一个全局二级索引。非常感谢:)

标签: node.js amazon-dynamodb


【解决方案1】:

是的,只能使用query API 使用哈希键查询数据。

使用 KeyConditionExpression 参数提供特定值 为分区键。查询操作将返回所有 具有该分区键值的表或索引中的项目。你可以 可选地通过指定 a 来缩小 Query 操作的范围 KeyConditionExpression 中的排序键值和比较运算符。 您可以使用 ScanIndexForward 参数来获取转发结果 或倒序,按排序键。

【讨论】:

  • 如果您没有为表定义范围键,也可以仅使用带有哈希键的 .get
猜你喜欢
  • 2016-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-04
  • 1970-01-01
  • 1970-01-01
  • 2016-06-28
  • 1970-01-01
相关资源
最近更新 更多