Conditional Writes
All write operations (put, update, delete) support condition= (AND logic) and condition_or= (OR logic).
Condition Syntax
# Only create if not exists (idempotent put)
try:
orders.put(
user_id="usr_123", order_id="ord_789",
status="NEW",
condition={"user_id__not_exists": True}
)
except ConditionError:
print("Order already exists")
# Only update if current status matches
orders.update(
user_id="usr_123", order_id="ord_789",
set={"status": "SHIPPED"},
condition={"status__eq": "PENDING"}
)
# Only delete if condition is met
orders.delete(
user_id="usr_123", order_id="ord_789",
condition={"status__eq": "CANCELLED"}
)
OR Conditions
# Update if status is PENDING or DRAFT
orders.update(
user_id="usr_123", order_id="ord_789",
set={"status": "CANCELLED"},
condition_or=[
{"status__eq": "PENDING"},
{"status__eq": "DRAFT"}
]
)
Combined AND + OR
orders.update(
user_id="usr_123", order_id="ord_789",
set={"status": "SHIPPED"},
condition={"version__eq": 3},
condition_or=[
{"status__eq": "PENDING"},
{"status__eq": "CONFIRMED"}
]
)
# Evaluates: (version = 3) AND (status = PENDING OR status = CONFIRMED)