首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >亚马逊dynamoDb ValidationException

亚马逊dynamoDb ValidationException
EN

Stack Overflow用户
提问于 2016-05-31 00:11:30
回答 2查看 1.8K关注 0票数 3

我用C语言使用aws- param库执行以下dynamoDB查询参数。

代码语言:javascript
复制
{ "TableName": "table4", "KeyConditionExpression": "#yr = :yyyy and ts between :letter1 and :letter2", "ExpressionAttributeNames": { "#yr": "userid" }, "ExpressionAttributeValues": { ":yyyy": "abc", ":letter1": 1, ":letter2": 2 } }

但我弄错了

代码语言:javascript
复制
"__type":"com.amazon.coral.validate#ValidationException","message":"1 validation error detected: Value null at 'hashKeyValue' failed to satisfy constraint: Member must not be null"

这是我的表结构

代码语言:javascript
复制
 table4
{
    "Table": {
        "TableSizeBytes": 66,
        "KeySchema": [
            {
                "AttributeName": "userid",
                "KeyType": "HASH"
            },
            {
                "AttributeName": "ts",
                "KeyType": "RANGE"
            }
        ],
        "CreationDateTime": 1464617195.039,
        "ItemCount": 3,
        "AttributeDefinitions": [
            {
                "AttributeName": "ts",
                "AttributeType": "N"
            },
            {
                "AttributeName": "userid",
                "AttributeType": "S"
            }
        ],
        "ProvisionedThroughput": {
            "ReadCapacityUnits": 1,
            "WriteCapacityUnits": 1,
            "LastDecreaseDateTime": 1464683346.007,
            "NumberOfDecreasesToday": 1
        },
        "TableStatus": "ACTIVE",
        "TableName": "table4",
        "TableArn": "arn:aws:dynamodb:us-east-1:456456456:table/table4"
    }
}
EN

回答 2

Stack Overflow用户

发布于 2016-05-31 15:14:56

分区键必须在Partition表达式中。请包括分区键并尝试。查询dynamodb时,分区键为必填项。扫描dynamodb时,分区键是可选的。这是dynamodb中查询和扫描之间的主要区别。

票数 0
EN

Stack Overflow用户

发布于 2016-05-31 21:05:33

下面是工作查询和表结构。

代码语言:javascript
复制
{ TableName: 'table4',
KeyConditionExpression: '#userid = :userid AND #ts between :ts1 AND :ts2',
ExpressionAttributeNames: { '#userid': 'userid', '#ts': 'ts' },
ExpressionAttributeValues: { ':userid': 'user1', ':ts1': 1, ':ts2': 2 } }

查询输出:-

代码语言:javascript
复制
{"userid":{"S":"user1"},"ts":{"N":"1"}}

表结构:-

代码语言:javascript
复制
    {"Table":{"AttributeDefinitions":  
      [{"AttributeName":"userid","AttributeType":"S"},
     {"AttributeName":"ts","AttributeType":"N"}],
"TableName":"table4","KeySchema":
[{"AttributeName":"userid","KeyType":"HASH"},{"AttributeName":"ts","KeyType":"RANGE"}],
"TableStatus":"ACTIVE",
"CreationDateTime":"2016-05-31T12:46:08.351Z",
"ProvisionedThroughput":{"LastIncreaseDateTime":"1970-01-01T00:00:00.000Z","LastDecreaseDateTime":"1970-01-01T00:00:00.000Z","NumberOfDecreasesToday":0,
"ReadCapacityUnits":10,"WriteCapacityUnits":10},
"TableSizeBytes":15,"ItemCount":1,"TableArn":
"arn:aws:dynamodb:ddblocal:000000000000:table/table4"}}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37529939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档