class Aws::DynamoDB::Types::ExpectedAttributeValue
@see docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ExpectedAttributeValue AWS API Documentation
@return [Array<Types::AttributeValue>]<br>: docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataFormat.html<br>[1]: en.wikipedia.org/wiki/ASCII#ASCII_printable_characters<br><br><br><br>Format][2] in the *Amazon DynamoDB Developer Guide*.
For information on specifying data types in JSON, see [JSON Data
when it compares binary values.
For Binary, DynamoDB treats each byte of the binary data as unsigned<br><br>[1].
see
than ‘A`, and `a` is greater than `B`. For a list of code values,
based on ASCII character code values. For example, `a` is greater
String value comparisons for greater than, equals, or less than are
For type Number, value comparisons are numeric.
being used.
number of values in the list depends on the `ComparisonOperator`
One or more values to evaluate against the supplied attribute. The
@!attribute [rw] attribute_value_list
@return [String]
`{“NS”:[“6”, “2”, “1”]}`
`{“N”:“6”}`. Also, `{“N”:“6”}` does not compare to
does not match. For example, `{“S”:“6”}` does not compare to
different type than the one provided in the request, the value
element. If an item contains an `AttributeValue` element of a
equal to, the first element and less than, or equal to, the second
A target attribute matches if the target value is greater than, or
the same type, either String, Number, or Binary (not a set type).
`AttributeValueList` must contain two `AttributeValue` elements of
than or equal to the second value.
* `BETWEEN`: Greater than or equal to the first value, and less
evaluates to true.
of the input are equal to the item attribute, the expression
compared against an existing attribute of an item. If any elements
elements of type String, Number, or Binary. These attributes are
`AttributeValueList` can contain one or more `AttributeValue`
* `IN`: Checks for matching elements in a list.
a Number or a set type).
attribute of the comparison must be of type String or Binary (not
String or Binary (not a Number or a set type). The target
`AttributeValueList` can contain only one `AttributeValue` of type
* `BEGINS_WITH`: Checks for a prefix.
set, a map, or a list.
CONTAINS b`“, ”`a`“ can be a list; however, ”`b`“ cannot be a
NOT_CONTAINS is supported for lists: When evaluating ”`a NOT
find an exact match with any member of the set.
or “`BS`”), then the operator evaluates to true if it *does not*
target attribute of the comparison is a set (“`SS`”, “`NS`”,
of a subsequence of the target that matches the input. If the
the comparison is Binary, then the operator checks for the absence
for the absence of a substring match. If the target attribute of
attribute of the comparison is a String, then the operator checks
of type String, Number, or Binary (not a set type). If the target
`AttributeValueList` can contain only one `AttributeValue` element
of a value in a set.
* `NOT_CONTAINS`: Checks for absence of a subsequence, or absence
map, or a list.
b`“, ”`a`“ can be a list; however, ”`b`“ cannot be a set, a
CONTAINS is supported for lists: When evaluating ”`a CONTAINS
exact match with any member of the set.
“`BS`”), then the operator evaluates to true if it finds an
attribute of the comparison is a set (“`SS`”, “`NS`”, or
subsequence of the target that matches the input. If the target
comparison is of type Binary, then the operator looks for a
checks for a substring match. If the target attribute of the
attribute of the comparison is of type String, then the operator
of type String, Number, or Binary (not a set type). If the target
`AttributeValueList` can contain only one `AttributeValue` element
* `CONTAINS`: Checks for a subsequence, or value in a set.
</note>
relevant to the `NULL` comparison operator.
because the attribute “`a`” exists; its data type is not
evaluate it using `NULL`, the result is a Boolean `false`. This is
data type. If the data type of attribute “`a`” is null, and you
<note markdown=“1”> This operator tests for the nonexistence of an attribute, not its
data types, including lists and maps.
* `NULL`: The attribute does not exist. `NULL` is supported for all
</note>
not relevant to the `NOT_NULL` comparison operator.
result is because the attribute “`a`” exists; its data type is
evaluate it using `NOT_NULL`, the result is a Boolean `true`. This
data type. If the data type of attribute “`a`” is null, and you
<note markdown=“1”> This operator tests for the existence of an attribute, not its
data types, including lists and maps.
* `NOT_NULL`: The attribute exists. `NOT_NULL` is supported for all
`{“N”:“6”}` does not compare to `{“NS”:[“6”, “2”, “1”]}`.
example, `{“S”:“6”}` does not equal `{“N”:“6”}`. Also,
one provided in the request, the value does not match. For
contains an `AttributeValue` element of a different type than the
of type String, Number, or Binary (not a set type). If an item
`AttributeValueList` can contain only one `AttributeValue` element
* `GT`: Greater than.
`{“N”:“6”}` does not compare to `{“NS”:[“6”, “2”, “1”]}`.
example, `{“S”:“6”}` does not equal `{“N”:“6”}`. Also,
one provided in the request, the value does not match. For
contains an `AttributeValue` element of a different type than the
of type String, Number, or Binary (not a set type). If an item
`AttributeValueList` can contain only one `AttributeValue` element
* `GE`: Greater than or equal.
does not compare to `{“NS”:[“6”, “2”, “1”]}`.
`{“S”:“6”}` does not equal `{“N”:“6”}`. Also, `{“N”:“6”}`
in the request, the value does not match. For example,
`AttributeValue` element of a different type than the one provided
String, Number, or Binary (not a set type). If an item contains an
`AttributeValueList` can contain only one `AttributeValue` of type
* `LT`: Less than.
`{“N”:“6”}` does not compare to `{“NS”:[“6”, “2”, “1”]}`.
example, `{“S”:“6”}` does not equal `{“N”:“6”}`. Also,
one provided in the request, the value does not match. For
contains an `AttributeValue` element of a different type than the
of type String, Number, or Binary (not a set type). If an item
`AttributeValueList` can contain only one `AttributeValue` element
* `LE`: Less than or equal.
`{“N”:“6”}` does not equal `{“NS”:[“6”, “2”, “1”]}`.
example, `{“S”:“6”}` does not equal `{“N”:“6”}`. Also,
one provided in the request, the value does not match. For
an item contains an `AttributeValue` of a different type than the
String, Number, Binary, String Set, Number Set, or Binary Set. If
`AttributeValueList` can contain only one `AttributeValue` of type
lists and maps.
* `NE`: Not equal. `NE` is supported for all data types, including
“2”, “1”]}`.
`{“N”:“6”}`. Also, `{“N”:“6”}` does not equal `{“NS”:[“6”,
does not match. For example, `{“S”:“6”}` does not equal
different type than the one provided in the request, the value
Set. If an item contains an `AttributeValue` element of a
of type String, Number, Binary, String Set, Number Set, or Binary
`AttributeValueList` can contain only one `AttributeValue` element
lists and maps.
* `EQ`: Equal. `EQ` is supported for all data types, including
The following are descriptions of each comparison operator.
NOT_CONTAINS | BEGINS_WITH | IN | BETWEEN`
`EQ | NE | LE | LT | GE | GT | NOT_NULL | NULL | CONTAINS |
The following comparison operators are available:
For example, equals, greater than, less than, etc.
A comparator for evaluating attributes in the `AttributeValueList`.
@!attribute [rw] comparison_operator
@return [Boolean]
to exist.)
expect an attribute to have a value, while also expecting it not
* `Exists` is `false` but you also provide a `Value`. (You cannot
value to exist, but don’t specify what that value is.)
* ‘Exists` is `true` but there is no `Value` to check. (You expect a
DynamoDB returns a `ValidationException` if:
have to set `Exists` to `true`, because it is implied.
all by itself, DynamoDB assumes the attribute exists: You don’t
The default setting for ‘Exists` is `true`. If you supply a `Value`
operation fails with a `ConditionCheckFailedException`.
value is found, despite the assumption that it does not exist, the
then the assumption is valid and the operation succeeds. If the
does not exist in the table. If in fact the value does not exist,
* If `Exists` is `false`, DynamoDB assumes that the attribute value
with a `ConditionCheckFailedException`.
the operation succeeds. If it is not found, the operation fails
attribute value already exists in the table. If it is found, then
* If `Exists` is `true`, DynamoDB will check to see if that
conditional operation:
Causes DynamoDB to evaluate the value before attempting a
@!attribute [rw] exists
@return [Types::AttributeValue]<br>: docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.NamingRulesDataTypes.html#HowItWorks.DataTypes<br><br><br><br>Developer Guide*.
For more information, see [Data Types] in the *Amazon DynamoDB
the data type, and the value is the data itself.
Each attribute value is described as a name-value pair. The name is
Represents the data for the expected attribute.
@!attribute [rw] value
}
attribute_value_list: [“value”], # value <Hash,Array,String,Numeric,Boolean,IO,Set,nil>
comparison_operator: “EQ”, # accepts EQ, NE, IN, LE, LT, GE, GT, BETWEEN, NOT_NULL, NULL, CONTAINS, NOT_CONTAINS, BEGINS_WITH
exists: false,
value: “value”, # value <Hash,Array,String,Numeric,Boolean,IO,Set,nil>
{
data as a hash:
@note When making an API call, you may pass ExpectedAttributeValue
once, DynamoDB will return a `ValidationException` exception.
`ComparisonOperator`. Note that if you use both sets of parameters at
`Value` and `Exists` are incompatible with `AttributeValueList` and
evaluates to false.
case, the conditional operation succeeds only if the comparison
*do not* expect to find the attribute value in the table. In this
Optionally, you can also set `Exists` to false, indicating that you
evaluates to true and the conditional operation succeeds.
attribute. If the values match, then `ExpectedAttributeValue`
* Use `Value` to specify a value that DynamoDB will compare against an
then the conditional operation succeeds.
want to perform the comparison. If the comparison evaluates to true,
against an attribute. Use `ComparisonOperator` to specify how you
* Use `AttributeValueList` to specify one or more values to compare
`ExpectedAttributeValue` in one of two different ways:
succeeds; if not, the operation fails. You can use
operations; if the comparison evaluates to true, the operation
condition can be used with `DeleteItem`, `PutItem`, or `UpdateItem`
Represents a condition to be compared with an attribute value. This