...
- Attribute name conflicts with a reserved word
- Example: If the condition expression/filter expression/projection expression contains "Comment" attribute, then the operation would fail as Comment is a reserved word in Dynamo DB. Refer to the Reserved Words section for a complete list of reserved words. To work around this, Comment can be replaced with an expression attribute name such as #c. The # (pound sign) is required and indicates that this is a placeholder for an attribute name.
- Attribute Names Containing Dots
- To retrieve the Safety.Warning attribute from a ProductCatalog item with the expected string value "Always wear a helmet", Dynamo DB would return an empty result as it interprets a dot in an expression as a document path separator. In this case, a substitute such as #sw can be defined for Safety.Warning and used in expressions.
- Nested Attributes
- To access nested attribute ProductReviews.OneStar using expression attribute name, one cannot substitute say #pr1star in projection expression. Dynamo DB would return an empty result, instead of the expected map of one-star reviews as it interprets a dot in an expression attribute value as a character within an attribute's name.
The correct approach would be to define an expression attribute name for each element in the document path and use #pr.#1star in projection expression.
#pr - ProductReviews
#1star - OneStar
- To access nested attribute ProductReviews.OneStar using expression attribute name, one cannot substitute say #pr1star in projection expression. Dynamo DB would return an empty result, instead of the expected map of one-star reviews as it interprets a dot in an expression attribute value as a character within an attribute's name.
Repeating Attribute Names
Expression attribute names are helpful when the same attribute name has to be used repeatedly. For example, consider the following projection expression for retrieving some of the reviews from a ProductCatalog item:
- "ProductReviews.FiveStar, ProductReviews.ThreeStar, ProductReviews.OneStar"
...
Source link: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.ExpressionAttributeValues.html
Reserved Words
List#1 | List#2 | List#3 | List#4 | List#5 |
ABORT ABSOLUTE ACTION ADD AFTER AGENT AGGREGATE ALL ALLOCATE ALTER ANALYZE AND ANY ARCHIVE ARE ARRAY AS ASC ASCII ASENSITIVE ASSERTION ASYMMETRIC AT ATOMIC ATTACH ATTRIBUTE AUTH AUTHORIZATION AUTHORIZE AUTO AVG BACK BACKUP BASE BATCH BEFORE BEGIN BETWEEN BIGINT BINARY BIT BLOB BLOCK BOOLEAN BOTH BREADTH BUCKET BULK BY BYTE CALL CALLED CALLING CAPACITY CASCADE CASCADED CASE CAST CATALOG CHAR CHARACTER CHECK CLASS CLOB CLOSE CLUSTER CLUSTERED CLUSTERING CLUSTERS COALESCE COLLATE COLLATION COLLECTION COLUMN COLUMNS COMBINE COMMENT COMMIT COMPACT COMPILE COMPRESS CONDITION CONFLICT CONNECT CONNECTION CONSISTENCY CONSISTENT CONSTRAINT CONSTRAINTS CONSTRUCTOR CONSUMED CONTINUE CONVERT COPY CORRESPONDING COUNT COUNTER CREATE CROSS CUBE CURRENT CURSOR CYCLE DATA DATABASE DATE DATETIME DAY DEALLOCATE DEC DECIMAL DECLARE DEFAULT DEFERRABLE DEFERRED | DEFINE DEFINED DEFINITION DELETE DELIMITED DEPTH DEREF DESC DESCRIBE DESCRIPTOR DETACH DETERMINISTIC DIAGNOSTICS DIRECTORIES DISABLE DISCONNECT DISTINCT DISTRIBUTE DO DOMAIN DOUBLE DROP DUMP DURATION DYNAMIC EACH ELEMENT ELSE ELSEIF EMPTY ENABLE END EQUAL EQUALS ERROR ESCAPE ESCAPED EVAL EVALUATE EXCEEDED EXCEPT EXCEPTION EXCEPTIONS EXCLUSIVE EXEC EXECUTE EXISTS EXIT EXPLAIN EXPLODE EXPORT EXPRESSION EXTENDED EXTERNAL EXTRACT FAIL FALSE FAMILY FETCH FIELDS FILE FILTER FILTERING FINAL FINISH FIRST FIXED FLATTERN FLOAT FOR FORCE FOREIGN FORMAT FORWARD FOUND FREE FROM FULL FUNCTION FUNCTIONS GENERAL GENERATE GET GLOB GLOBAL GO GOTO GRANT GREATER GROUP GROUPING HANDLER HASH HAVE HAVING HEAP HIDDEN HOLD HOUR IDENTIFIED IDENTITY IF IGNORE IMMEDIATE IMPORT IN INCLUDING INCLUSIVE INCREMENT INCREMENTAL INDEX INDEXED INDEXES INDICATOR INFINITE | INITIALLY INLINE INNER INNTER INOUT INPUT INSENSITIVE INSERT INSTEAD INT INTEGER INTERSECT INTERVAL INTO INVALIDATE IS ISOLATION ITEM ITEMS ITERATE JOIN KEY KEYS LAG LANGUAGE LARGE LAST LATERAL LEAD LEADING LEAVE LEFT LENGTH LESS LEVEL LIKE LIMIT LIMITED LINES LIST LOAD LOCAL LOCALTIME LOCALTIMESTAMP LOCATION LOCATOR LOCK LOCKS LOG LOGED LONG LOOP LOWER MAP MATCH MATERIALIZED MAX MAXLEN MEMBER MERGE METHOD METRICS MIN MINUS MINUTE MISSING MOD MODE MODIFIES MODIFY MODULE MONTH MULTI MULTISET NAME NAMES NATIONAL NATURAL NCHAR NCLOB NEW NEXT NO NONE NOT NULL NULLIF NUMBER NUMERIC OBJECT OF OFFLINE OFFSET OLD ON ONLINE ONLY OPAQUE OPEN OPERATOR OPTION OR ORDER ORDINALITY OTHER OTHERS OUT OUTER OUTPUT OVER OVERLAPS OVERRIDE OWNER PAD PARALLEL | PARAMETER PARAMETERS PARTIAL PARTITION PARTITIONED PARTITIONS PATH PERCENT PERCENTILE PERMISSION PERMISSIONS PIPE PIPELINED PLAN POOL POSITION PRECISION PREPARE PRESERVE PRIMARY PRIOR PRIVATE PRIVILEGES PROCEDURE PROCESSED PROJECT PROJECTION PROPERTY PROVISIONING PUBLIC PUT QUERY QUIT QUORUM RAISE RANDOM RANGE RANK RAW READ READS REAL REBUILD RECORD RECURSIVE REDUCE REF REFERENCE REFERENCES REFERENCING REGEXP REGION REINDEX RELATIVE RELEASE REMAINDER RENAME REPEAT REPLACE REQUEST RESET RESIGNAL RESOURCE RESPONSE RESTORE RESTRICT RESULT RETURN RETURNING RETURNS REVERSE REVOKE RIGHT ROLE ROLES ROLLBACK ROLLUP ROUTINE ROW ROWS RULE RULES SAMPLE SATISFIES SAVE SAVEPOINT SCAN SCHEMA SCOPE SCROLL SEARCH SECOND SECTION SEGMENT SEGMENTS SELECT SELF SEMI SENSITIVE SEPARATE SEQUENCE SERIALIZABLE SESSION SET SETS SHARD SHARE SHARED SHORT SHOW SIGNAL SIMILAR SIZE SKEWED | SMALLINT SNAPSHOT SOME SOURCE SPACE SPACES SPARSE SPECIFIC SPECIFICTYPE SPLIT SQL SQLCODE SQLERROR SQLEXCEPTION SQLSTATE SQLWARNING START STATE STATIC STATUS STORAGE STORE STORED STREAM STRING STRUCT STYLE SUB SUBMULTISET SUBPARTITION SUBSTRING SUBTYPE SUM SUPER SYMMETRIC SYNONYM SYSTEM TABLE TABLESAMPLE TEMP TEMPORARY TERMINATED TEXT THAN THEN THROUGHPUT TIME TIMESTAMP TIMEZONE TINYINT TO TOKEN TOTAL TOUCH TRAILING TRANSACTION TRANSFORM TRANSLATE TRANSLATION TREAT TRIGGER TRIM TRUE TRUNCATE TTL TUPLE TYPE UNDER UNDO UNION UNIQUE UNIT UNKNOWN UNLOGGED UNNEST UNPROCESSED UNSIGNED UNTIL UPDATE UPPER URL USAGE USE USER USERS USING UUID VACUUM VALUE VALUED VALUES VARCHAR VARIABLE VARIANCE VARINT VARYING VIEW VIEWS VIRTUAL VOID WAIT WHEN WHENEVER WHERE WHILE WINDOW WITH WITHIN WITHOUT WORK WRAPPED WRITE YEAR ZONE |
...
Code Block |
---|
{ "Id": 123, "Title": "Bicycle 123", "Description": "123 description", "BicycleType": "Hybrid", "Brand": "Brand-Company C", "Price": 500, "Color": {"Red", "Black"}, "ProductCategory": "Bicycle", "InStock": true, "QuantityOnHand": null, "RelatedItems": { 341, 472, 649 }, "Pictures": { "FrontView": "http://example.com/products/123_front.jpg", "RearView": "http://example.com/products/123_rear.jpg", "SideView": "http://example.com/products/123_left_side.jpg" }, "ProductReviews": { "FiveStar": { "Excellent! Can't recommend it highly enough! Buy it!", "Do yourself a favor and buy this." }, "OneStar": { "Terrible product! Do not buy this." } }, "Comment": "This product sells out quickly during the summer", "Safety.Warning": "Always wear a helmet" } |
Expressions, Operators and Functions
...
This property is used when there is a need to process messages in parallel within the component, still maintaining the sequence from the external perspective.
...
Depending on the operation type, the following parameters are taken from the input. The rest of the parameters are taken from the CPS for processing.
- Primary key values for Get Item, Delete Item, Update Item operations.
- Exclusive start key values for Query and Scan operations.
- Input attributes for Put Item which also includes primary key values.
- Expression attribute values for Put Item, Update Item, Delete Item, Query, and Scan operations.
Output format for various operations.
- GetItem: The JSON corresponding to the primary key specified will be sent to the output. If there is no matching item in Dynamo DB for the specified key then empty JSON object will be sent if the component is configured to send an empty response in such cases via Send empty response expert property.
- PutItem/UpdateItem/DeleteItem: If the component is configured to return NONE via Return Values parameter in CPS, then a JSON object {“success” : true} will be sent to the output. In case of Return Values parameter set to a value other than NONE, the corresponding item will be sent if exists, otherwise {“success” : true} JSON object will be sent.
- Query/Scan/BatchGetItem: The list of items will be sent as JSON objects to the output. Each JSON object is separated by a newline. If there are no items retrieve then empty JSON will be sent if the component is configured to send an empty response via Send empty response expert property.
- BatchWriteItem: The output will be a JSON object which has information about Unprocessed items if any resulting out of the operation.
DynamoDB instance which is set up locally."