Insertar elementos en tabla NoSQL
Catalyst te permite insertar elementos en una tabla NoSQL específica después de construirlos. Los elementos se pueden insertar de diferentes formas como se describe en esta sección.
Puedes consultar las secciones de ayuda sobre cómo agregar y trabajar con datos, el formato JSON personalizado de Catalyst, y los tipos de datos admitidos para conocer estos temas en detalle.
Insert Items without Conditions
Puedes insertar nuevos elementos en una tabla NoSQL sin condiciones construyendo los elementos en el formato JSON personalizado de Catalyst. Esto requerirá que pases obligatoriamente los valores para los atributos de clave de partición y clave de ordenamiento configurados para la tabla.
En el ejemplo dado a continuación, se proporciona un elemento que contiene el valor del atributo de clave de partición fruitName como “Banana”. Otros atributos del tipo de datos string como fruitColor y fruitType también se agregan como un map llamado fruitProperties. El elemento se inserta usando el método insertItems().
// Insertar un ítem NoSQL sin condiciones
const plainInsert = await table.insertItems({
// Definir el elemento a insertar con la clave de partición fruitName
item: NoSQLItem.from({
fruitName: 'Banana',
//Proporcionar valores para los otros atributos del elemento
fruitProperties: {
fruitColor: 'Yellow',
fruitType: 'Berries'
}
}),
// Establecer el valor de retorno en la respuesta. Otros valores soportados son "OLD" y "NULL"
return: NoSQLReturnValue.NEW
});
Insert Items with Conditional Functions
Puedes insertar atributos en elementos existentes en una tabla NoSQL utilizando condiciones específicas que defines en el formato JSON personalizado de Catalyst. En este tipo, los datos existentes de la tabla se recuperan y se evalúan contra la condición especificada. Los elementos se insertan solo si la evaluación es verdadera. Si no hay datos existentes, las condiciones se ignoran y los elementos se insertan.
Catalyst admite múltiples operadores para evaluar condiciones. Los operadores admitidos se representan como se muestra a continuación.
| Operadores | Notación |
|---|---|
| CONTAINS | contains |
| NOT_CONTAINS | not_contains |
| BEGINS_WITH | begins_with |
| ENDS_WITH | ends_with |
| IN | in |
| NOT_IN | not_in |
| BETWEEN | between |
| NOT_BETWEEN | not_between |
| EQUALS | equals |
| NOT_EQUALS | not_equals |
| GREATER_THAN | greater_than |
| LESS_THAN | less_than |
| GREATER_THAN_OR_EQUALS | greater_equal |
| LESSER_THAN_OR_EQUALS | less_equal |
| AND | AND |
| OR | OR |
El ejemplo a continuación ilustra esto definiendo una condición para que el tipo de datos del atributo fruitName sea String en los datos existentes. Si la condición se cumple, el atributo taste con el valor “Sweet” se agrega a estos elementos.
// Insertar un ítem NoSQL con la función "attribute_type"
const attrTypeInsert = await table.insertItems({
// Definir el elemento a insertar
item: NoSQLItem.from({ taste: 'Sweet' }),
// Definir la condición para la inserción
condition: {
// La condición especifica que el elemento debe ser agregado si el tipo de atributo es String ("S")
function: {
// Establecer el tipo de función
function_name: 'attribute_type',
// Proporcionar los argumentos a la función
args: [
{
// Establecer la ruta del atributo
attribute_path: ['fruitName']
},
// Establecer el tipo de atributo
NoSQLMarshall.makeString('S') // => { "S": "S" }
]
}
}
});
A continuación se muestran algunos fragmentos de ejemplo más para insertar elementos con funciones condicionales.
//Insertar un elemento NoSQL con el operador "equals", el valor del atributo "name" es "apple"
const operatorEqInsert = await table.insertItems({
// Definir el elemento a insertar
item: NoSQLItem.from({ taste: 'Sweet' }),
// Definir la condición para la inserción
condition: {
// Establecer la ruta del atributo
attribute: ['name'],
// Establecer el operador según la operación
operator: NoSQLOperator.EQUALS,
// Establecer el valor para comparación
value: NoSQLMarshall.makeString('apple') // => { "S": "apple" }
}
});
//Insertar un elemento NoSQL con "group_operator", atributo "name" es "apple" Y atributo "variety" es "gala"
const groupOpInsert = await table.insertItems({
// Definir el elemento a insertar
item: NoSQLItem.from({ taste: 'Sweet' }),
// Definir la condición para la inserción
condition: {
// Establecer el operador de grupo
group_operator: NoSQLConditionGroupOperator.AND,
// Proporcionar las condiciones de grupo
group: [
{
// Establecer la ruta del atributo
attribute: 'name',
// Establecer el operador según la operación
operator: NoSQLOperator.EQUALS,
// Establecer el valor para comparación
value: NoSQLMarshall.makeString('apple') // => { "S": "apple" }
},
{
// Establecer la ruta del atributo
attribute: 'variety',
// Establecer el operador según la operación
operator: NoSQLOperator.EQUALS,
// Establecer el valor para comparación
value: NoSQLMarshall.makeString('gala') // => { "S": "gala" }
}
]
}
});
//Insertar un elemento NoSQL con el operador "begins_with", el valor del atributo "name" comienza con "app"
const beginsWithInsert = await table.insertItems({
// Definir el elemento a insertar
item: NoSQLItem.from({ taste: 'Sweet' }),
// Definir la condición para la inserción
condition: {
// Establecer la ruta del atributo
attribute: ['name'],
// Establecer el operador según la operación
operator: NoSQLOperator.BEGINS_WITH,
// establecer el valor para comparación
value: NoSQLMarshall.makeString('app') // => { "S": "app" }
}
});
Última actualización 2026-03-30 13:40:30 +0530 IST
Yes
No
Send your feedback to us