Lettura di un documento

I passaggi illustrati mostrano come leggere un documento:

  1. Inviare una richiesta GET per recuperare un documento.

  2. Eseguire il seguente comando: https://$ACCOUNT.cloudant.com/$DATABASE/$DOCUMENT_ID.

Ricordiamo che per un database partizionato la chiave $DOCUMENT_ID è formata da una parte di chiave di partizione e da una parte di chiave di documento.

Se non si conosce il _id di un particolare documento, è possibile interrogare il database per tutti i documenti.

A causa della natura distribuita ed eventualmente coerente di IBM Cloudant, le letture potrebbero restituire dati non aggiornati. In particolare, i dati scritti di recente, anche dallo stesso client, potrebbero non essere restituiti da una richiesta di lettura immediatamente successiva a quella di scrittura. Per aggirare questo comportamento, un client può memorizzare nella cache lo stato dei dati a livello locale. La cache aiuta anche a mantenere basso il numero di richieste, ad aumentare le prestazioni dell'applicazione e a ridurre il carico sul cluster di database. Questo comportamento si applica anche ad altre richieste di lettura, come quelle a MapReduce e agli indici di ricerca.

Vedere un esempio di recupero di un documento utilizzando HTTP:

GET /$DATABASE/$DOCUMENT_ID HTTP/1.1

È possibile personalizzare questa sezione per il linguaggio di programmazione che si desidera utilizzare, selezionando il linguaggio negli esempi di codice.

Vedere un esempio di recupero di un documento:

curl -H "Authorization: Bearer $API_BEARER_TOKEN" -X GET "$SERVICE_URL/products/small-appliances:1000042"
import com.ibm.cloud.cloudant.v1.Cloudant;
import com.ibm.cloud.cloudant.v1.model.Document;
import com.ibm.cloud.cloudant.v1.model.GetDocumentOptions;
Cloudant service = Cloudant.newInstance();
GetDocumentOptions documentOptions =
    new GetDocumentOptions.Builder()
        .db("products")
        .docId("small-appliances:1000042")
        .build();
Document response =
    service.getDocument(documentOptions).execute()
        .getResult();
System.out.println(response);
const { CloudantV1 } = require('@ibm-cloud/cloudant');
const service = CloudantV1.newInstance({});
service.getDocument({
  db: 'products',
  docId: 'small-appliances:1000042'
}).then(response => {
  console.log(response.result);
});
from ibmcloudant.cloudant_v1 import CloudantV1
service = CloudantV1.new_instance()
response = service.get_document(
  db='products',
  doc_id='small-appliances:1000042'
).get_result()
print(response)
getDocumentOptions := service.NewGetDocumentOptions(
  "products",
  "small-appliances:1000042",
)
document, response, err := service.GetDocument(getDocumentOptions)
if err != nil {
  panic(err)
}
b, _ := json.MarshalIndent(document, "", "  ")
fmt.Println(string(b))

Il precedente esempio di Go richiede il seguente blocco di importazione:

import (
   "encoding/json"
   "fmt"
   "github.com/IBM/cloudant-go-sdk/cloudantv1"
)

Tutti gli esempi Go richiedono l'iniziazione dell'oggetto service. Per ulteriori informazioni, consultare la sezione Autenticazione della documentazione API per gli esempi.

La risposta contiene il documento richiesto, o una descrizione dell'errore se il documento non può essere recuperato.

Vedere un esempio di risposta per il recupero di un documento:

{
  "_id": "exampleid",
  "brand": "Foo",
  "colours": [
    "red",
    "green",
    "black",
    "blue"
  ],
  "description": "Slim Colourful Design Electronic Cooking Appliance for ...",
  "image": "assets/img/0gmsnghhew.jpg",
  "keywords": [
    "Foo",
    "Scales",
    "Weight",
    "Digital",
    "Kitchen"
  ],
  "name": "Digital Kitchen Scales",
  "price": 14.99,
  "productid": "1000042",
  "taxonomy": [
    "Home",
    "Kitchen",
    "Small Appliances"
  ],
  "type": "product"
}

Parametri di query

È possibile aggiungere alcuni parametri di query all'indirizzo URL, ad esempio /mydatabase/doc?attachments=true&conflicts=true.

Tutti i parametri sono opzionali.

Parametri di query
Nome Immettere Descrizione Valore predefinito
attachments Booleano Include gli allegati in risposta. False
att_encoding_info Booleano Include le informazioni di codifica negli stub degli allegati se il particolare allegato è compresso. False
atts_since Array di stringhe di revisione Include gli allegati solo a partire dalle revisioni specificate. Non include gli allegati per le revisioni specificate. []
conflicts Booleano Include informazioni sui conflitti nei documenti. False
deleted_conflicts Booleano Include informazioni sulle revisioni cancellate e in conflitto. False
latest Booleano Richiede il recupero della revisione "foglia" più recente, indipendentemente dalla revisione richiesta. False
local_seq Booleano Include il numero di sequenza dell'ultimo aggiornamento del documento. False
meta Booleano Come specificare i parametri di query conflicts, deleted_conflicts e open_revs. False
open_revs Array o all Recupera i documenti delle revisioni delle ante specificate. Inoltre, accetta il valore all per restituire tutte le revisioni delle foglie. []
rev Stringa Recupera il documento della revisione specificata.
revs Booleano Include un elenco di tutte le revisioni note del documento. False
revs_info Booleano Include informazioni dettagliate su tutte le revisioni note del documento. False

Leggi molti

Per recuperare più di un documento alla volta, interrogare il database utilizzando l'opzione include_docs.