dynobase-icon
Dynobase

Error: dynamodb query is not null

Rafal Wilinski

Answered by Rafal Wilinski

What's Causing This Error

This error message indicates that the query operation has failed because the KeyConditionExpression property is not set or specified correctly. The KeyConditionExpression is used to specify the primary key value of the item(s) to be retrieved from the table.

If the property is not set or is specified incorrectly, DynamoDB will not know which item(s) to retrieve, hence the error.

Solution: Here's How To Resolve It

To solve this error, provide a valid KeyConditionExpression property. The KeyConditionExpression should include the primary key name and the value to be searched for.

Here is an example of how to perform a query operation with a valid KeyConditionExpression:

import boto3

# Instantiate a client
dynamodb = boto3.client('dynamodb', region_name='us-west-2')

# Define the parameters
table_name = "my_table"
key_condition_expression = "Id = :value"
expression_attribute_values = {
   ":value": {"N": "1"}
}

# Perform the operation
response = dynamodb.query(TableName=table_name, KeyConditionExpression=key_condition_expression, ExpressionAttributeValues=expression_attribute_values)
print(response)

It is also possible to use multiple primary keys in the query, and it's important to use the correct syntax for the query depending on the primary key schema.

import boto3

# Instantiate a client
dynamodb = boto3.client('dynamodb', region_name='us-west-2')

# Define the parameters
table_name = "my_table"
key_condition_expression = "Id = :value1 AND sort_key = :value2"
expression_attribute_values = {
   ":value1": {"S": "my_id"},
   ":value2": {"S": "my_sort_key"}
}

# Perform the operation
response = dynamodb.query(TableName=table_name, KeyConditionExpression=key_condition_expression, ExpressionAttributeValues=expression_attribute_values)
print(response)

It is important to check that the primary key name and value are correct and that the primary key exists in the table; otherwise, the query will fail.

Spend less time in the AWS console, use Dynobase.

Try 7-day free trial. No strings attached.

Product Features

Download
/
Changelog
/
Pricing
/
Member Portal
/
Privacy
/
EULA
/
Twitter
© 2024 Dynobase
+
Still using AWS DynamoDB Console?
Try Dynobase to accelerate your DynamoDB workflow. Start your 7-day free trial today.