Desde finales del 2020 la consola de Amazon DynamoDB soporta PartiQL, un lenguaje de consulta compatible con SQL que nos facilita interactuar con nuestras tablas de DynamoDB.
Las consultas hechas en partiQL son transformadas a "query" o "scan" según las condiciones que pongamos en nuestra cláusula "where", así por ejemplo si en nuestra cláusula "where" incluimos nuestro campo que corresponda al partition-key de la tabla, se ejecutará una QUERY, caso contrario, dynamo correrá un SCAN (no recomendable)
SELECT
SELECT a la tabla
SELECT * FROM "bookings"
WHERE
hotelId = 'ht-002' AND
statusWaitingDraft.creationDateTimeUTC > '2021-05-24T14:27:31.874Z'SELECT a un indice
SELECT * FROM "bookings"."type-status-index"
WHERE
type = 'booking' AND
statusWaitingDraft.creationDateTimeUTC > '2021-05-24T14:27:31.874Z'UPDATE
Actualiza atributos y Agregar un elemento a un array (append)
const statement = {
Statement: `UPDATE "${tableName}"
SET "status"='BURNED'
SET "auditlog" = list_append(if_not_exists(auditlog, ?), ?)
WHERE partitionKey='${partitionKey}'
AND sortKey='PURCHASE#${purchaseId}#TICKET#${ticketId}'
AND status='PAYED'`,
Parameters: [
[], // Lista vacía inicial
[auditLog], // auditLog envuelto en un array
],
};usar if_not_exists permite agregar array vacio antes del update para que no falle por que el atributo no existe