Estoy tratando de agregar un nuevo campo a un elemento de CosmosDB. El campo que quiero agregar es un objeto. Por ejemplo:
jobResult = { description: "exampledescription", value: "examplevalue" }Probé el siguiente código:
... const { CosmosClient } = require("@azure/cosmos"); const endpoint = "VALUE"; const key = "VALUE"; const client = new CosmosClient({ endpoint, key }); const { database } = await client.databases.createIfNotExists({ id: 'VALUE' }); const { container } = await database.containers.createIfNotExists({ id: 'VALUE' }); const operation = [ { op: "Add", path: "/result", value: jobResult } ]; const { resource: updated } = await container.item(id = '42', partitionKeyValue = '/id') .patch(operation); ...me sale el error:
La entidad con la identificación especificada no existe en el sistema
El elemento existe porque obtengo el elemento cuando uso container.item("42").read()
El valor que proporcionó para la partitionKeyValue es incorrecto.
El código que está ejecutando actualmente está buscando un elemento con una identificación de 42 en una partición contenedora de /Id . En lugar de proporcionar la ruta, deberá proporcionar el valor de la clave de partición, que se establece durante la creación del contenedor.
Sin embargo, por el aspecto de la creación de su contenedor, parece que no hay una ruta de clave de partición establecida, por lo que no debería necesitar proporcionarla:
... const { resource: updated } = await container.item(id = '42') .patch(operation); ...Si quisiera establecer la clave de partición, entonces desearía que la creación de su contenedor se viera así:
... const { container } = await database.containers.createIfNotExists({ id: "VALUE", partitionKey: "/Id", }); ...Nota: probablemente tendrá que eliminar su contenedor para que se vuelva a crear con el conjunto de claves de partición.