Dokument lesen
Die hier gezeigten Schritte veranschaulichen, wie ein Dokument gelesen wird:
-
Senden Sie zum Abrufen eines Dokuments eine
GET-Anforderung. -
Führen Sie den Befehl
https://$ACCOUNT.cloudant.com/$DATABASE/$DOCUMENT_IDaus.
Beachten Sie dabei, dass das Feld $DOCUMENT_ID für eine partitionierte Datenbank einen Partitionsschüssel und einen Dokumentschlüssel enthält.
Wenn Sie die „ _id “ für ein bestimmtes Dokument nicht kennen, können Sie unter die Datenbank abfragen alle Dokumente einsehen.
Da es sich bei IBM Cloudant um ein verteiltes Produkt mit sukzessiver Konsistenz handelt, kann es vorkommen, dass Lesevorgänge veraltete Daten zurückgeben. Insbesondere werden vor kurzem geschriebene Daten (auch vom selben Client) von einem Lesevorgang möglicherweise nicht zurückgegeben, der unmittelbar auf den Schreibvorgang folgt. Zur Vermeidung dieses Verhaltens kann ein Client den Status der Daten lokal zwischenspeichern. Das Zwischenspeichern trägt außerdem dazu bei, die Anzahl der Anforderungen niedrig zu halten, die Anwendungsleistung zu steigern und die Arbeitslast im Datenbankcluster zu verringern. Dieses Verhalten gilt auch für andere Leseanforderungen (z. B. für MapReduce und Suchindizes).
Im folgenden Beispiel wird ein Dokument über HTTP abgerufen:
GET /$DATABASE/$DOCUMENT_ID HTTP/1.1
Sie können diesen Abschnitt für die zu verwendende Programmiersprache anpassen, indem Sie die Sprache in den Codebeispielen auswählen.
Sehen Sie sich ein Beispiel für das Abrufen eines Dokuments an:
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))
Das vorherige Go-Beispiel erfordert den folgenden Importblock:
import (
"encoding/json"
"fmt"
"github.com/IBM/cloudant-go-sdk/cloudantv1"
)
Für alle Go-Beispiele muss das Objekt service initialisiert sein. Weitere Informationen finden Sie in den Beispielen im Abschnitt 'Authentifizierung' in der API-Dokumentation.
Die Antwort enthält das von Ihnen angeforderte Dokument oder eine Beschreibung des Fehlers, wenn das Dokument nicht abgerufen werden kann.
Beispielantwort nach dem Abrufen eines Dokuments:
{
"_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"
}
Abfrageparameter
Sie können einige Abfrageparameter zu der URL hinzufügen, zum Beispiel /mydatabase/doc?attachments=true&conflicts=true.
Alle Parameter sind optional.
| Name | Typ | Beschreibung | Standard |
|---|---|---|---|
attachments |
Boolescher Wert | Schließt die Hauptteile der Anhänge in die Antwort ein. | Falsch |
att_encoding_info |
Boolescher Wert | Schließt Codierungsinformationen in die Rumpfkomponente des Anhangs ein, wenn der betreffende Anhang komprimiert ist. | Falsch |
atts_since |
Array der Revisionszeichenfolgen | Schließt nur die Anhänge seit den angegebenen Revisionen ein. Schließt keine Anhänge für angegebene Revisionen ein. | [] |
conflicts |
Boolescher Wert | Enthält Informationen zu Konflikten in Dokumenten. | Falsch |
deleted_conflicts |
Boolescher Wert | Schließt Informationen zu gelöschten Revisionen mit Konflikten ein. | Falsch |
latest |
Boolescher Wert | Erzwingt das Abrufen der neuesten untergeordneten Revision, unabhängig von der angeforderten Revision. | Falsch |
local_seq |
Boolescher Wert | Schließt die Folgenummer der letzten Aktualisierung für das Dokument ein. | Falsch |
meta |
Boolescher Wert | Entspricht dem Angeben der Abfrageparameter conflicts, deleted_conflicts und open_revs. |
Falsch |
open_revs |
Array oder all |
Ruft Dokumente der angegebenen untergeordneten Revisionen ab. Außerdem ist der Wert all zulässig, der alle untergeordneten Revisionen abruft. |
[] |
rev |
Zeichenfolge | Ruft das Dokument der angegebenen Revision ab. |
|
revs |
Boolescher Wert | Schließt die Liste aller bekannten Dokumentrevisionen ein. | Falsch |
revs_info |
Boolescher Wert | Schließt detaillierte Informationen zu allen bekannten Dokumentrevisionen ein. | Falsch |
Mehrfach lesen
Um mehrere Dokumente gleichzeitig abzurufen,
führen Sie eine Abfrage in der Datenbank durch, indem Sie die Option „ include_docs “ verwenden.