Class ExpressionSpecBuilder
java.lang.Object
com.amazonaws.services.dynamodbv2.xspec.ExpressionSpecBuilder
- All Implemented Interfaces:
Cloneable
A request-centric Expression Specification Builder that can be used to
construct valid expressions, and the respective name maps and value maps, for
various DynamoDB requests in a typeful manner. This includes Update expression, Condition expression (including Filter expression and Key Condition
expression), and Projection expression. This class is the API entry point to this
library.
This builder object is not thread-safe but you can reuse or build on (the specific states of) a builder by cloning it into separate instances for use in a concurrent environment.
Sample Usage 1: Conditional Updates with Expressions
import static com.amazonaws.services.dynamodbv2.xspec.ExpressionSpecBuilder.*;
...
Table table = dynamo.getTable(TABLE_NAME);
UpdateItemExpressionSpec xspec = new ExpressionSpecBuilder()
// SET num1 = num1 + 20
.addUpdate(
N("num1").set(N("num1").plus(20)))
// SET string-attr = "string-value"
.addUpdate(
S("string-attr").set("string-value")
)
// num2 BETWEEN 0 AND 100
.withCondition(
N("num2").between(0, 100)
).buildForUpdate();
table.updateItem(HASH_KEY_NAME, "hashKeyValue", RANGE_KEY_NAME, 0, xspec);
Sample Usage 2: Conditional Updates with complex Condition Expression
Let's say you want to include a complex condition expression such as:
(attribute_not_exists(item_version) AND attribute_not_exists(config_id) AND attribute_not_exists(config_version)) OR (item_version invalid input: '<' 123) OR (item_version = 123 AND config_id invalid input: '<' 456) OR (item_version = 123 AND config_id = 456 AND config_version invalid input: '<' 999)Here is how:
import static com.amazonaws.services.dynamodbv2.xspec.ExpressionSpecBuilder.*;
...
Table table = dynamo.getTable(TABLE_NAME);
UpdateItemExpressionSpec xspec = new ExpressionSpecBuilder()
// SET num1 = num1 + 20
.addUpdate(
N("num1").set(N("num1").plus(20)))
// SET string-attr = "string-value"
.addUpdate(
S("string-attr").set("string-value")
)
// a complex condition expression (as shown above)
.withCondition(
// add explicit parenthesis
parenthesize( attribute_not_exists("item_version")
.and( attribute_not_exists("config_id") )
.and( attribute_not_exists("config_version") )
).or( N("item_version").lt(123) )
.or( N("item_version").eq(123)
.and( N("config_id").lt(456) ) )
.or( N("item_version").eq(123)
.and( N("config_id").eq(456) )
.and( N("config_version").lt(999) ))
).buildForUpdate();
table.updateItem(HASH_KEY_NAME, "hashKeyValue", RANGE_KEY_NAME, 0, xspec);
Sample Usage 3: Scan with Filter Expression
Without ExpressionSpecBuilder, the code (using the DynamoDB Document API) could be something like:
ItemCollection<?> col = table.scan(
"(#hk = :hashkeyAttrValue) AND (#rk BETWEEN :lo AND :hi)",
new NameMap().with("#hk", HASH_KEY_NAME).with("#rk", RANGE_KEY_NAME),
new ValueMap().withString(":hashkeyAttrValue", "allDataTypes")
.withInt(":lo", 1).withInt(":hi", 10));
In contrast, using ExpressionSpecBuilder:
import static com.amazonaws.services.dynamodbv2.xspec.ExpressionSpecBuilder.*;
...
ScanExpressionSpec xspec = new ExpressionSpecBuilder()
.withCondition(
S(HASH_KEY_NAME).eq("allDataTypes")
.and(N(RANGE_KEY_NAME).between(1, 10))
).buildForScan();
ItemCollectioninvalid input: '<'?> col = table.scan(xspec);
Sample Usage 4: Updates with SET, ADD, DELETE and REMOVE
import static com.amazonaws.services.dynamodbv2.xspec.ExpressionSpecBuilder.*;
...
Table table = dynamo.getTable(TABLE_NAME);
UpdateItemExpressionSpec xspec = new ExpressionSpecBuilder()
.addUpdate(S("mapAttr.colors[0]").set("red"))
.addUpdate(S("mapAttr.colors[1]").set("blue"))
.addUpdate(L("mapAttr.members").set(
L("mapAttr.members").listAppend("marry", "liza")))
.addUpdate(SS("mapAttr.countries").append("cn", "uk"))
.addUpdate(SS("mapAttr.brands").delete("Facebook", "LinkedIn"))
.addUpdate(attribute("mapAttr.foo").remove())
.buildForUpdate();
assertEquals("SET #0.#1[0] = :0, #0.#1[1] = :1, #0.#2 = list_append(#0.#2, :2) ADD #0.#3 :3 DELETE #0.#4 :4 REMOVE #0.#5",
xspec.getUpdateExpression());
final String hashkey = "addRemoveDeleteColors";
table.updateItem(HASH_KEY_NAME, hashkey, RANGE_KEY_NAME, 0, xspec);
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionConstructs a request-centric Expression Specification Builder that can be used to construct valid expressions, and the respective name maps and value maps, for various DynamoDB requests in a typeful manner. -
Method Summary
Modifier and TypeMethodDescriptionstatic <T> ParenthesizedConditionA short hand for callingparenthesize(Condition)to explicitly parenthesize a given condition for building condition expressions.addProjection(String path) Fluent API to add the given attribute to the list of projection of a request.addProjections(String... paths) Fluent API to add the given attributes to the list of projection of a request.addUpdate(UpdateAction updateAction) Fluent API to add the given Update expression for a request.static PathOperandReturns a path operand that refers to an attribute of some unspecified data type; used for building expressions.static <T> FunctionConditionattribute_exists(PathOperand pathOperand) Returns a function condition (that evaluates to true if the attribute of the specified path operand exists) for building condition expression.static <T> FunctionConditionattribute_exists(String path) Returns a function condition (that evaluates to true if the attribute at the specified path exists) for building condition expression.static FunctionConditionattribute_not_exists(PathOperand pathOperand) Returns a function condition (that evaluates to true if the attribute of the specified path operand does not exist) for building condition expression.static FunctionConditionattribute_not_exists(String path) Returns a function condition (that evaluates to true if the attribute at the specified path does not exist) for building condition expression.static BCreates a path operand that refers to a binary attribute for the purpose of building expressions.static BOOLCreates a path operand that refers to a boolean attribute for the purpose of building expressions.static BSCreates a path operand that refers to a binary-set attribute for the purpose of building expressions.Returns an expression specification for use in aDeleteItemrequest to DynamoDB.Returns an expression specification for use in aGetItemrequest to DynamoDB.Returns an expression specification for use in aPutItemrequest to DynamoDB.Returns an expression specification for use in a query request to DynamoDB.Returns an expression specification for use in a scan request to DynamoDB.Returns an expression specification for use in anUpdateItemrequest to DynamoDB.clone()static IfNotExistsFunction<BOOL> if_not_exists(String path, boolean defaultValue) Returns anIfNotExistsobject which represents an if_not_exists(path, operand) function call; used for building expression.static IfNotExistsFunction<B> if_not_exists(String path, byte[] defaultValue) Returns anIfNotExistsobject which represents an if_not_exists(path, operand) function call; used for building expression.static IfNotExistsFunction<BS> if_not_exists(String path, byte[]... defaultValue) Returns anIfNotExistsobject which represents an if_not_exists(path, operand) function call; used for building expression.static IfNotExistsFunction<N> if_not_exists(String path, Number defaultValue) Returns anIfNotExistsobject which represents an if_not_exists(path, operand) function call; used for building expression.static IfNotExistsFunction<NS> if_not_exists(String path, Number... defaultValue) Returns anIfNotExistsobject which represents an if_not_exists(path, operand) function call; used for building expression.static IfNotExistsFunction<S> if_not_exists(String path, String defaultValue) Returns anIfNotExistsobject which represents an if_not_exists(path, operand) function call; used for building expression.static IfNotExistsFunction<SS> if_not_exists(String path, String... defaultValue) Returns anIfNotExistsobject which represents an if_not_exists(path, operand) function call; used for building expression.static IfNotExistsFunction<B> if_not_exists(String path, ByteBuffer defaultValue) Returns anIfNotExistsobject which represents an if_not_exists(path, operand) function call; used for building expression.static IfNotExistsFunction<BS> if_not_exists(String path, ByteBuffer... defaultValue) Returns anIfNotExistsobject which represents an if_not_exists(path, operand) function call; used for building expression.static IfNotExistsFunction<L> if_not_exists(String path, List<?> defaultValue) Returns anIfNotExistsobject which represents an if_not_exists(path, operand) function call; used for building expression.static IfNotExistsFunction<M> if_not_exists(String path, Map<String, ?> defaultValue) Returns anIfNotExistsobject which represents an if_not_exists(path, operand) function call; used for building expression.static LCreates a path operand that refers to a list attribute for the purpose of building expressions.static <T> ListAppendFunctionlist_append(String path, List<? extends T> value) Returns aListAppendobject which represents a list_append(operand, operand) function call; used for building expression.static <T> ListAppendFunctionlist_append(String path, T value) Returns aListAppendobject which represents a list_append(operand, operand) function call; used for building expression.static <T> ListAppendFunctionlist_append(List<? extends T> value, String path) Returns aListAppendobject which represents a list_append(operand, operand) function call; used for building expression.static MCreates a path operand that refers to a map attribute for the purpose of building expressions.static NCreates a path operand that refers to a number attribute for the purpose of building expressions.static <T> NegationConditionReturns a negation of the specified condition; used for building condition expression.static NSCreates a path operand that refers to a number-set attribute for the purpose of building expressions.static NULLCreates a path operand that refers to a NULL attribute for the purpose of building expressions.static <T> ParenthesizedConditionparenthesize(Condition condition) Returns an explicitly parenthesized condition, ie '(' condition ')' used in building condition expressions.static RemoveActionReturns aRemoveActionfor removing the attribute with the specified path from an item; used for building update expression.static SCreates a path operand that refers to a string attribute for the purpose of building expressions.static SSCreates a path operand that refers to a string-set attribute for the purpose of building expressions.withCondition(Condition condition) Fluent API to set the condition expression for a request.withKeyCondition(Condition keyCondition)
-
Constructor Details
-
ExpressionSpecBuilder
public ExpressionSpecBuilder()Constructs a request-centric Expression Specification Builder that can be used to construct valid expressions, and the respective name maps and value maps, for various DynamoDB requests in a typeful manner. This includes Update expression, Condition expression (including Filter expression and Key Condition expression), and Projection expression. This class is the API entry point to this library.This builder object is not thread-safe but you can reuse or build on (the specific states of) a builder by cloning it into separate instances for use in a concurrent environment.
Sample Usage: Query with Filter Expression
import static com.amazonaws.services.dynamodbv2.xspec.ExpressionSpecBuilder.*; ... Table table = dynamo.getTable(TABLE_NAME); QueryExpressionSpec xspec = new ExpressionSpecBuilder() .addProjections("numberAttr", "stringAttr") .withCondition(BOOL("booleanTrue").eq(true) .and(S("mapAttr.key1").eq("value1")) ).buildForQuery(); ItemCollectioninvalid input: '<'?> col = table.query(HASH_KEY_NAME, "allDataTypes", new RangeKeyCondition("range_key_name").between(1, 10), xspec);Sample Usage: Conditional Updates with Expressions
import static com.amazonaws.services.dynamodbv2.xspec.ExpressionSpecBuilder.*; ... Table table = dynamo.getTable(TABLE_NAME); UpdateItemExpressionSpec xspec = new ExpressionSpecBuilder() // SET num1 = num1 + 20 .addUpdate( N("num1").set(N("num1").plus(20))) // SET string-attr = "string-value" .addUpdate( S("string-attr").set("string-value") ) // num2 BETWEEN 0 AND 100 .withCondition( N("num2").between(0, 100) ).buildForUpdate(); table.updateItem(HASH_KEY_NAME, "hashKeyValue", RANGE_KEY_NAME, 0, xspec);Sample Usage: Scan with Filter Expression
Without ExpressionSpecBuilder, the code (using the DynamoDB Document API) could be something like:
ItemCollection<?> col = table.scan( "(#hk = :hashkeyAttrValue) AND (#rk BETWEEN :lo AND :hi)", new NameMap().with("#hk", HASH_KEY_NAME).with("#rk", RANGE_KEY_NAME), new ValueMap().withString(":hashkeyAttrValue", "allDataTypes") .withInt(":lo", 1).withInt(":hi", 10));In contrast, using ExpressionSpecBuilder:import static com.amazonaws.services.dynamodbv2.xspec.ExpressionSpecBuilder.*; ... ScanExpressionSpec xspec = new ExpressionSpecBuilder() .withCondition( S(HASH_KEY_NAME).eq("allDataTypes") .and(N(RANGE_KEY_NAME).between(1, 10)) ).buildForScan(); ItemCollectioninvalid input: '<'?> col = table.scan(xspec);Sample Usage: Conditional Updates with Expressions
import static com.amazonaws.services.dynamodbv2.xspec.ExpressionSpecBuilder.*; ... Table table = dynamo.getTable(TABLE_NAME); UpdateItemExpressionSpec xspec = new ExpressionSpecBuilder() // SET num1 = num1 + 20 .addUpdate( N("num1").set(N("num1").plus(20))) // SET string-attr = "string-value" .addUpdate( S("string-attr").set("string-value") ) // num2 BETWEEN 0 AND 100 .withCondition( N("num2").between(0, 100) ).buildForUpdate(); table.updateItem(HASH_KEY_NAME, "hashKeyValue", RANGE_KEY_NAME, 0, xspec);Sample Usage: Conditional Updates with complex Condition Expression
Let's say you want to include a complex condition expression such as:
(attribute_not_exists(item_version) AND attribute_not_exists(config_id) AND attribute_not_exists(config_version)) OR (item_version invalid input: '<' 123) OR (item_version = 123 AND config_id invalid input: '<' 456) OR (item_version = 123 AND config_id = 456 AND config_version invalid input: '<' 999)
Here is how:import static com.amazonaws.services.dynamodbv2.xspec.ExpressionSpecBuilder.*; ... Table table = dynamo.getTable(TABLE_NAME); UpdateItemExpressionSpec xspec = new ExpressionSpecBuilder() // SET num1 = num1 + 20 .addUpdate( N("num1").set(N("num1").plus(20))) // SET string-attr = "string-value" .addUpdate( S("string-attr").set("string-value") ) // a complex condition expression (as shown above) .withCondition( // add explicit parenthesis parenthesize( attribute_not_exists("item_version") .and( attribute_not_exists("config_id") ) .and( attribute_not_exists("config_version") ) ).or( N("item_version").lt(123) ) .or( N("item_version").eq(123) .and( N("config_id").lt(456) ) ) .or( N("item_version").eq(123) .and( N("config_id").eq(456) ) .and( N("config_version").lt(999) )) ).buildForUpdate(); table.updateItem(HASH_KEY_NAME, "hashKeyValue", RANGE_KEY_NAME, 0, xspec);Sample Usage: Updates with SET, ADD, DELETE and REMOVE
import static com.amazonaws.services.dynamodbv2.xspec.ExpressionSpecBuilder.*; ... Table table = dynamo.getTable(TABLE_NAME); UpdateItemExpressionSpec xspec = new ExpressionSpecBuilder() .addUpdate(S("mapAttr.colors[0]").set("red")) .addUpdate(S("mapAttr.colors[1]").set("blue")) .addUpdate(L("mapAttr.members").set( L("mapAttr.members").listAppend("marry", "liza"))) .addUpdate(SS("mapAttr.countries").append("cn", "uk")) .addUpdate(SS("mapAttr.brands").delete("Facebook", "LinkedIn")) .addUpdate(attribute("mapAttr.foo").remove()) .buildForUpdate(); assertEquals("SET #0.#1[0] = :0, #0.#1[1] = :1, #0.#2 = list_append(#0.#2, :2) ADD #0.#3 :3 DELETE #0.#4 :4 REMOVE #0.#5", xspec.getUpdateExpression()); final String hashkey = "addRemoveDeleteColors"; table.updateItem(HASH_KEY_NAME, hashkey, RANGE_KEY_NAME, 0, xspec);- See Also:
-
-
Method Details
-
addUpdate
Fluent API to add the given Update expression for a request.For example:
import static com.amazonaws.services.dynamodbv2.xspec.ExpressionSpecBuilder.*; ... builder // SET num1 = num1 + 20 .addUpdate( N("num1").set(N("num1").plus(20))) // SET string-attr = "string-value" .addUpdate( S("string-attr").set("string-value") ) -
withCondition
Fluent API to set the condition expression for a request.For example:
import static com.amazonaws.services.dynamodbv2.xspec.ExpressionSpecBuilder.*; ... builder.withCondition( // num2 BETWEEN 0 AND 100 ExpressionSpecBuilder.N("num2").between(0, 100) ) ...Example of specifying a complex condition:import static com.amazonaws.services.dynamodbv2.xspec.ExpressionSpecBuilder.*; ... // A complex condition expression: // // (attribute_not_exists(item_version) AND attribute_not_exists(config_id) AND attribute_not_exists(config_version)) OR // (item_version invalid input: '<' 123) OR // (item_version = 123 AND config_id invalid input: '<' 456) OR // (item_version = 123 AND config_id = 456 AND config_version invalid input: '<' 999) // builder.withCondition( // add explicit parenthesis parenthesize( attribute_not_exists("item_version") .and( attribute_not_exists("config_id") ) .and( attribute_not_exists("config_version") ) ).or( N("item_version").lt(123) ) .or( N("item_version").eq(123) .and( N("config_id").lt(456) ) ) .or( N("item_version").eq(123) .and( N("config_id").eq(456) ) .and( N("config_version").lt(999) )) ) ... -
withKeyCondition
-
addProjection
Fluent API to add the given attribute to the list of projection of a request. For example:builder.addProjection("binarySetAttribute") .addProjection("listAttr[0]") .addProjection("mapAttr.name") .addProjection("stringSetAttr") ; -
addProjections
Fluent API to add the given attributes to the list of projection of a request. For example:builder.addProjections("binarySetAttribute", "listAttr[0]", "mapAttr.name", "stringSetAttr"); -
buildForDeleteItem
Returns an expression specification for use in aDeleteItemrequest to DynamoDB. -
buildForGetItem
Returns an expression specification for use in aGetItemrequest to DynamoDB. -
buildForQuery
Returns an expression specification for use in a query request to DynamoDB. -
buildForScan
Returns an expression specification for use in a scan request to DynamoDB. -
buildForUpdate
Returns an expression specification for use in anUpdateItemrequest to DynamoDB. -
buildForPut
Returns an expression specification for use in aPutItemrequest to DynamoDB. -
clone
-
if_not_exists
Returns anIfNotExistsobject which represents an if_not_exists(path, operand) function call; used for building expression."if_not_exists (path, operand) – If the item does not contain an attribute at the specified path, then if_not_exists evaluates to operand; otherwise, it evaluates to path. You can use this function to avoid overwriting an attribute already present in the item."
- Parameters:
path- document path to an attributedefaultValue- default value if the attribute doesn't exist- Returns:
- an
IfNotExistsobject for number (N) attribute.
-
if_not_exists
Returns anIfNotExistsobject which represents an if_not_exists(path, operand) function call; used for building expression."if_not_exists (path, operand) – If the item does not contain an attribute at the specified path, then if_not_exists evaluates to operand; otherwise, it evaluates to path. You can use this function to avoid overwriting an attribute already present in the item."
- Parameters:
path- document path to an attributedefaultValue- default value if the attribute doesn't exist- Returns:
- an
IfNotExistsobject for binary (B) attribute.
-
if_not_exists
Returns anIfNotExistsobject which represents an if_not_exists(path, operand) function call; used for building expression."if_not_exists (path, operand) – If the item does not contain an attribute at the specified path, then if_not_exists evaluates to operand; otherwise, it evaluates to path. You can use this function to avoid overwriting an attribute already present in the item."
- Parameters:
path- document path to an attributedefaultValue- default value if the attribute doesn't exist- Returns:
- an
IfNotExistsobject for binary (B) attribute.
-
if_not_exists
Returns anIfNotExistsobject which represents an if_not_exists(path, operand) function call; used for building expression."if_not_exists (path, operand) – If the item does not contain an attribute at the specified path, then if_not_exists evaluates to operand; otherwise, it evaluates to path. You can use this function to avoid overwriting an attribute already present in the item."
- Parameters:
path- document path to an attributedefaultValue- default value if the attribute doesn't exist- Returns:
- an
IfNotExistsobject for boolean (BOOL) attribute.
-
if_not_exists
Returns anIfNotExistsobject which represents an if_not_exists(path, operand) function call; used for building expression."if_not_exists (path, operand) – If the item does not contain an attribute at the specified path, then if_not_exists evaluates to operand; otherwise, it evaluates to path. You can use this function to avoid overwriting an attribute already present in the item."
- Parameters:
path- document path to an attributedefaultValue- default value if the attribute doesn't exist- Returns:
- an
IfNotExistsobject for binary set (BS) attribute.
-
if_not_exists
Returns anIfNotExistsobject which represents an if_not_exists(path, operand) function call; used for building expression."if_not_exists (path, operand) – If the item does not contain an attribute at the specified path, then if_not_exists evaluates to operand; otherwise, it evaluates to path. You can use this function to avoid overwriting an attribute already present in the item."
- Parameters:
path- document path to an attributedefaultValue- default value if the attribute doesn't exist- Returns:
- an
IfNotExistsobject for binary set (BS) attribute.
-
if_not_exists
Returns anIfNotExistsobject which represents an if_not_exists(path, operand) function call; used for building expression."if_not_exists (path, operand) – If the item does not contain an attribute at the specified path, then if_not_exists evaluates to operand; otherwise, it evaluates to path. You can use this function to avoid overwriting an attribute already present in the item."
- Parameters:
path- document path to an attributedefaultValue- default value if the attribute doesn't exist- Returns:
- an
IfNotExistsobject for list (L) attribute.
-
if_not_exists
Returns anIfNotExistsobject which represents an if_not_exists(path, operand) function call; used for building expression."if_not_exists (path, operand) – If the item does not contain an attribute at the specified path, then if_not_exists evaluates to operand; otherwise, it evaluates to path. You can use this function to avoid overwriting an attribute already present in the item."
- Parameters:
path- document path to an attributedefaultValue- default value if the attribute doesn't exist- Returns:
- an
IfNotExistsobject for map (M) attribute.
-
if_not_exists
Returns anIfNotExistsobject which represents an if_not_exists(path, operand) function call; used for building expression."if_not_exists (path, operand) – If the item does not contain an attribute at the specified path, then if_not_exists evaluates to operand; otherwise, it evaluates to path. You can use this function to avoid overwriting an attribute already present in the item."
- Parameters:
path- document path to an attributedefaultValue- default value if the attribute doesn't exist- Returns:
- an
IfNotExistsobject for number set (NS) attribute.
-
if_not_exists
Returns anIfNotExistsobject which represents an if_not_exists(path, operand) function call; used for building expression."if_not_exists (path, operand) – If the item does not contain an attribute at the specified path, then if_not_exists evaluates to operand; otherwise, it evaluates to path. You can use this function to avoid overwriting an attribute already present in the item."
- Parameters:
path- document path to an attributedefaultValue- default value if the attribute doesn't exist- Returns:
- an
IfNotExistsobject for string (S) attribute.
-
if_not_exists
Returns anIfNotExistsobject which represents an if_not_exists(path, operand) function call; used for building expression."if_not_exists (path, operand) – If the item does not contain an attribute at the specified path, then if_not_exists evaluates to operand; otherwise, it evaluates to path. You can use this function to avoid overwriting an attribute already present in the item."
- Parameters:
path- document path to an attributedefaultValue- default value if the attribute doesn't exist- Returns:
- an
IfNotExistsobject for string set (SS) attribute.
-
list_append
Returns aListAppendobject which represents a list_append(operand, operand) function call; used for building expression."list_append(operand, operand) – This function evaluates to a list with a new element added to it. You can append the new element to the start or the end of the list by reversing the order of the operands."
- Parameters:
path- document path to a list attributevalue- single value to be appended to the list attribute
-
list_append
Returns aListAppendobject which represents a list_append(operand, operand) function call; used for building expression."list_append(operand, operand) – This function evaluates to a list with a new element added to it. You can append the new element to the start or the end of the list by reversing the order of the operands."
- Parameters:
path- document path to a list attributevalue- list of values to be appended to the list attribute
-
list_append
Returns aListAppendobject which represents a list_append(operand, operand) function call; used for building expression."list_append(operand, operand) – This function evaluates to a list with a new element added to it. You can append the new element to the start or the end of the list by reversing the order of the operands."
- Parameters:
value- list of values to be appended topath- document path to a list attribute
-
attribute_exists
Returns a function condition (that evaluates to true if the attribute of the specified path operand exists) for building condition expression. -
attribute_exists
Returns a function condition (that evaluates to true if the attribute at the specified path exists) for building condition expression. -
attribute_not_exists
Returns a function condition (that evaluates to true if the attribute of the specified path operand does not exist) for building condition expression. -
attribute_not_exists
Returns a function condition (that evaluates to true if the attribute at the specified path does not exist) for building condition expression. -
not
Returns a negation of the specified condition; used for building condition expression. -
remove
Returns aRemoveActionfor removing the attribute with the specified path from an item; used for building update expression.- Parameters:
path- the document path to the attribute, where nested path elements are assumed to be delimited by either "." or array indexing such as "[1]".
-
attribute
Returns a path operand that refers to an attribute of some unspecified data type; used for building expressions.- Parameters:
path- the document path to the attribute, where nested path elements are assumed to be delimited by either "." or array indexing such as "[1]".
-
BOOL
Creates a path operand that refers to a boolean attribute for the purpose of building expressions.- Parameters:
path- the document path to the attribute, where nested path elements are assumed to be delimited by either "." or array indexing such as "[1]".
-
NULL
Creates a path operand that refers to a NULL attribute for the purpose of building expressions.- Parameters:
path- the document path to the attribute, where nested path elements are assumed to be delimited by either "." or array indexing such as "[1]".
-
B
Creates a path operand that refers to a binary attribute for the purpose of building expressions.- Parameters:
path- the document path to the attribute, where nested path elements are assumed to be delimited by either "." or array indexing such as "[1]".
-
N
Creates a path operand that refers to a number attribute for the purpose of building expressions.- Parameters:
path- the document path to the attribute, where nested path elements are assumed to be delimited by either "." or array indexing such as "[1]".
-
S
Creates a path operand that refers to a string attribute for the purpose of building expressions.- Parameters:
path- the document path to the attribute, where nested path elements are assumed to be delimited by either "." or array indexing such as "[1]".
-
BS
Creates a path operand that refers to a binary-set attribute for the purpose of building expressions.- Parameters:
path- the document path to the attribute, where nested path elements are assumed to be delimited by either "." or array indexing such as "[1]".
-
NS
Creates a path operand that refers to a number-set attribute for the purpose of building expressions.- Parameters:
path- the document path to the attribute, where nested path elements are assumed to be delimited by either "." or array indexing such as "[1]".
-
SS
Creates a path operand that refers to a string-set attribute for the purpose of building expressions.- Parameters:
path- the document path to the attribute, where nested path elements are assumed to be delimited by either "." or array indexing such as "[1]".
-
L
Creates a path operand that refers to a list attribute for the purpose of building expressions.- Parameters:
path- the document path to the attribute, where nested path elements are assumed to be delimited by either "." or array indexing such as "[1]".
-
M
Creates a path operand that refers to a map attribute for the purpose of building expressions.- Parameters:
path- the document path to the attribute, where nested path elements are assumed to be delimited by either "." or array indexing such as "[1]".
-
parenthesize
Returns an explicitly parenthesized condition, ie '(' condition ')' used in building condition expressions. -
_
A short hand for callingparenthesize(Condition)to explicitly parenthesize a given condition for building condition expressions.
-