Acerca de las cookies de este sitio Nuestros sitios web necesitan algunas cookies para funcionar correctamente (necesarias). Además, se pueden utilizar otras cookies con su consentimiento para analizar el uso del sitio, para mejorar la experiencia del usuario y para publicidad. Para obtener más información, consulte sus opciones de. Al visitar nuestro sitio web, acepta que procesemos la información tal y como se describe en ladeclaración de privacidad de IBM. Para facilitar la navegación, sus preferencias de cookies se compartirán entre los dominios web de IBM que se muestran aquí.
Actualización de un documento
Para actualizar un documento, envíe una solicitud PUT
o POST
con el contenido JSON actualizado y el valor _rev
más reciente a https://$ACCOUNT.cloudant.com/$DATABASE/$DOCUMENT_ID
. También puede
utilizar este método PUT
para crear un documento, en cuyo caso no es necesario que especifique el valor _rev
más reciente.
Recuerde que, para una base de datos particionada, el valor $DOCUMENT_ID
se forma a partir de una parte de clave de partición y una parte de clave de documento.
Si no puede proporcionar el _rev
más reciente cuando intenta actualizar un documento existente, IBM Cloudant responde con un error 409. Este error
le impide sobrescribir datos modificados por otros procesos. Si no se puede cumplir la escritura quórum , se devuelve un Respuesta de 202
.
Cualquier actualización del documento puede llevar a un conflicto, especialmente cuando se replican documentos actualizados. Para obtener más información sobre cómo evitar y resolver conflictos, consulte la Guía de versiones de documentos y MVCC.
Puede personalizar este tema para el lenguaje de programación que desea utilizar seleccionando el idioma en los ejemplos de código.
Consulte un ejemplo de actualización de un documento utilizando HTTP:
POST /$DATABASE HTTP/1.1
Consulte ejemplos de actualización de un documento:
curl -H "Authorization: Bearer $API_BEARER_TOKEN" -X POST "$SERVICE_URL/products" -H "Content-Type: application/json" --data '{ "_id": "small-appliances:1000042", "_rev": "1-967a00dff5e02add41819138abb3284d", "type": "product", "productid": "1000042", "brand": "Salter", "name": "Digital Kitchen Scales", "description": "Slim Colourful Design Electronic Cooking Appliance for Home / Kitchen, Weigh up to 5kg + Aquatronic for Liquids ml + fl. oz. 15Yr Guarantee - Green", "price: 14.99, "image": "assets/img/0gmsnghhew.jpg" }'
import com.ibm.cloud.cloudant.v1.Cloudant;
import com.ibm.cloud.cloudant.v1.model.Document;
import com.ibm.cloud.cloudant.v1.model.DocumentResult;
import com.ibm.cloud.cloudant.v1.model.PostDocumentOptions;
Cloudant service = Cloudant.newInstance();
Document productsDocument = new Document();
productsDocument.setId("small-appliances:1000042");
productsDocument.setRev("1-967a00dff5e02add41819138abb3284d");
productsDocument.put("type", "product");
productsDocument.put("productid", "1000042");
productsDocument.put("brand", "Salter");
productsDocument.put("name", "Digital Kitchen Scales");
productsDocument.put("description", "Slim Colourful Design Electronic"
+ "Cooking Appliance for Home/Kitchen, Weigh up to 5kg + Aquatronic"
+ "for Liquids ml + fl. oz. 15Yr Guarantee - Green");
productsDocument.put("price", 14.99);
productsDocument.put("image", "assets/img/0gmsnghhew.jpg");
PostDocumentOptions documentOptions =
new PostDocumentOptions.Builder()
.db("products")
.document(productsDocument)
.build();
DocumentResult response =
service.postDocument(documentOptions).execute()
.getResult();
System.out.println(response);
const { CloudantV1 } = require('@ibm-cloud/cloudant');
const service = CloudantV1.newInstance({});
const productsDoc = {
_id: 'small-appliances:1000042',
_rev: '1-967a00dff5e02add41819138abb3284d'
type: 'product',
productid: '1000042',
brand: 'Salter',
name: 'Digital Kitchen Scales',
description: 'Slim Colourful Design Electronic Cooking Appliance for Home / Kitchen, Weigh up to 5kg + Aquatronic for Liquids ml + fl. oz. 15Yr Guarantee - Green',
price: 14.99,
image: 'assets/img/0gmsnghhew.jpg'
};
service.postDocument({
db: 'products',
document: productsDoc
}).then(response => {
console.log(response.result);
});
from ibmcloudant.cloudant_v1 import Document, CloudantV1
service = CloudantV1.new_instance()
products_doc = Document(
id="small-appliances:1000042",
rev="1-967a00dff5e02add41819138abb3284d"
type="product",
productid="1000042",
brand="Salter",
name="Digital Kitchen Scales",
description="Slim Colourful Design Electronic Cooking Appliance for Home / Kitchen, Weigh up to 5kg + Aquatronic for Liquids ml + fl. oz. 15Yr Guarantee - Green",
price=14.99,
image="assets/img/0gmsnghhew.jpg")
response = service.post_document(db='products', document=products_doc).get_result()
print(response)
productsDoc := cloudantv1.Document{
ID: core.StringPtr("small-appliances:1000042"),
}
productsDoc.Rev = "1-967a00dff5e02add41819138abb3284d"
productsDoc.SetProperty("type", "product")
productsDoc.SetProperty("productid", "1000042")
productsDoc.SetProperty("brand", "Salter")
productsDoc.SetProperty("name", "Digital Kitchen Scales")
productsDoc.SetProperty("description", "Slim Colourful Design Electronic Cooking Appliance for Home / Kitchen, Weigh up to 5kg + Aquatronic for Liquids ml + fl. oz. 15Yr Guarantee - Green")
productsDoc.SetProperty("price", 14.99)
productsDoc.SetProperty("image", "assets/img/0gmsnghhew.jpg")
postDocumentOptions := service.NewPostDocumentOptions(
"products",
)
postDocumentOptions.SetDocument(&productsDoc)
documentResult, response, err := service.PostDocument(postDocumentOptions)
if err != nil {
panic(err)
}
b, _ := json.MarshalIndent(documentResult, "", " ")
fmt.Println(string(b))
El ejemplo Go anterior requiere el siguiente bloque de importación:
import (
"encoding/json"
"fmt"
"github.com/IBM/cloudant-go-sdk/cloudantv1"
"github.com/IBM/go-sdk-core/v5/core"
)
Todos los ejemplos de Go requieren que se inicialice el objeto service
. Para obtener más información, consulte los ejemplos de la Sección de autenticación de la documentación de la API.
Consulte un ejemplo de datos JSON que contiene un documento actualizado:
{
"id": "exampleid",
"ok": true,
"rev": "2-056f5f44046ecafc08a2bc2b9c229e20"
}
Recuerde que, para una base de datos particionada, el valor $DOCUMENT_ID
se forma a partir de una parte de clave de partición y una parte de clave de documento.
La respuesta contiene el ID y la nueva revisión del documento, o un mensaje de error si la actualización falla.
Consulte una respuesta de ejemplo después de una actualización correcta:
{
"id": "exampleid",
"ok": true,
"rev": "2-056f5f44046ecafc08a2bc2b9c229e20"
}