Aviso:

Para brindarle información de soporte completa de manera más rápida, el contenido de esta página ha sido traducido al español mediante traducción automática. Para consultar la información de soporte más precisa, consulte la versión en inglés de este contenido.

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.

Nota: Catalyst te permite insertar un máximo de 25 elementos de forma masiva en una tabla NoSQL con una sola operación del SDK.

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().

copy
// 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.

copy
// 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.

copy
//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