Last updated on 
                
                    Apr 27, 2021
                
            
            
        
        
    
Description
This function searches for items based on the values of the primary key values.
For more information, see Query.
Category
History
ColdFusion (2021 release): Added this function.
Syntax
serviceHandle.query(requestParameters)
Parameters
See request parameters of Query.
Example
<cfscript> 
  cred = { 
    "credentialAlias" : "myalias", 
    "vendorName" : "AWS", 
    "region" : "us-east-2", 
    "secretAccessKey" : "xxxxx", 
    "accessKeyId" : "xxxx" 
  } 
  config = { 
    "serviceName" = "DYNAMODB" 
  } 
  dynamo = getCloudService(cred, config) 
 // Stage 1: create a table 
  tableName="MusicTableForDemo" 
  tableStruct={ 
    TableName : "#tableName#", 
    KeySchema:[ 
        { AttributeName: "Artist", KeyType: "HASH"},  // Partition key 
        { AttributeName: "SongTitle", KeyType: "RANGE"}  // Sort key 
    ], 
    AttributeDefinitions:[ 
        { AttributeName: "Artist", AttributeType: "S" }, 
        { AttributeName: "SongTitle", AttributeType: "S" } 
    ], 
    ProvisionedThroughput:{ 
        ReadCapacityUnits: 10, 
        WriteCapacityUnits: 10 
    } 
 } 
 
 try{ 
    createResponse=dynamo.createTable(tableStruct) 
    writeOutput("Table created successfully") 
 } 
 catch (any e){ 
    writeDump(e) 
 } 
 
// Stage 2: batch write item 
  batchWriteItemStruct={ 
    "RequestItems":{ 
      "#tableName#":[ 
        { 
          "PutRequest":{ 
            "Item":{ 
              "Artist":{"S":"Beatles"}, 
              "SongTitle":{"S":"Yesterday"} 
            } 
          } 
        }, 
        { 
          "PutRequest":{ 
            "Item":{ 
              "Artist":{"S":"Rolling STones"}, 
              "SongTitle":{"S":"Angie"} 
            } 
          } 
        }, 
        { 
          "PutRequest":{ 
            "Item":{ 
              "Artist":{"S":"Beatles"}, 
              "SongTitle":{"S":"Hey Jude"} 
            } 
          } 
        }, 
        { 
          "PutRequest":{ 
            "Item":{ 
              "Artist":{"S":"Beatles"}, 
              "SongTitle":{"S":"Let it be"} 
            } 
          } 
        }, 
        { 
          "PutRequest":{ 
            "Item":{ 
              "Artist":{"S":"Lionel Richie"}, 
              "SongTitle":{"S":"Hello"} 
            } 
          } 
        }, 
        { 
          "PutRequest":{ 
            "Item":{ 
              "Artist":{"S":"Adele"}, 
              "SongTitle":{"S":"Hello, I Love You"} 
            } 
          } 
        }, 
        { 
          "PutRequest":{ 
            "Item":{ 
              "Artist":{"S":"Adele"}, 
              "SongTitle":{"S":"Hello"} 
            } 
          } 
        } 
      ] 
    } 
  } 
   
  try{ 
    qriteItemResponse=dynamo.batchWriteItem(batchWriteItemStruct,{"hasType":true}) 
    writeOutput("Items inserted successfully") 
    writeDump(qriteItemResponse) 
 
  } 
  catch (any e){ 
    writeDump(e) 
  } 
 
// Stage 3: query the table 
// Return a single song, by primary key 
queryStruct={ 
  "TableName":"#tableName#", 
  "KeyConditionExpression": "Artist =:a and SongTitle =:t", 
  "ExpressionAttributeValues": { 
        ":a": "Beatles", 
        ":t": "Yesterday" 
    } 
} 
 
// Output of first case 
try{ 
  queryResponse=dynamo.query(queryStruct,{"customResponse":true}) 
  writeOutput("Items returned successfully") 
  writeDump(queryResponse) 
} 
catch (ay e){ 
  writeDump(e) 
} 
 
// Return all songs by a particular artist 
queryStructArtist={ 
  "TableName":"#tableName#", 
  "KeyConditionExpression":"Artist =:a", 
  "ExpressionAttributeValues":{ 
    ":a": "Beatles" 
  } 
} 
 
// Output of second case 
try{ 
  queryResponseArtist=dynamo.query(queryStructArtist,{"customResponse":true}) 
  writeOutput("Items returned successfully") 
  writeDump(queryResponseArtist) 
} 
catch (ay e){ 
  writeDump(e) 
} 
 
// Return all of the songs by an artist matching first part of title 
queryStructFirstPart={ 
  "TableName":"#tableName#", 
  "KeyConditionExpression":"Artist =:a and begins_with(SongTitle,:t)", 
  "ExpressionAttributeValues":{ 
    ":a":"Adele", 
    ":t":"Hello" 
  } 
} 
 
// Output of third case 
try{ 
  queryResponseFirstPart=dynamo.query(queryStructFirstPart,{"customResponse":true}) 
  writeOutput("Items returned successfully") 
  writeDump(queryResponseFirstPart) 
} 
catch (ay e){ 
  writeDump(e) 
} 
</cfscript> 
		
	
Output