Lettura di un documento
I passaggi illustrati mostrano come leggere un documento:
-
Inviare una richiesta
GETper recuperare un documento. -
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.
| 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.