Dokumente abrufen

Wenn Sie alle Dokumente in einer Datenbank auflisten möchten, senden Sie eine GET-Anforderung an https://$ACCOUNT.cloudant.com/$DATABASE/_all_docs.

Der Endpunkt _all_docs akzeptiert die folgende Argumente in der Abfragezeichenfolge und im JSON-Hauptteil:

Abfrage-String und JSON-Body-Argumente
Argument Beschreibung Optionale Typ Standard
conflicts Kann nur festgelegt werden, wenn include_docs auf true gesetzt ist. Fügt Informationen zu Konflikten in jedem Dokument hinzu. Ja Boolescher Wert Falsch
deleted_conflicts Gibt Informationen zu gelöschten Revisionen mit Konflikten zurück. Ja Boolescher Wert Falsch
descending Gibt die Dokumente in absteigender Reihenfolge der Schlüssel zurück. Ja Boolescher Wert Falsch
endkey Die Rückgabe von Datensätzen stoppen, wenn der angegebene Schlüssel erreicht ist. Ja Zeichenfolge
endkey_docid Die Rückgabe von Datensätzen stoppen, wenn die angegebene Dokument-ID erreicht ist. Wenn endkey nicht festgelegt ist, wird dieses Argument ignoriert. Ja Zeichenfolge
include_docs Den vollständigen Inhalt der Dokumente in die Rückgabe einschließen. Ja Boolescher Wert Falsch
inclusive_end Zeilen einschließen, deren Schlüsselwerte mit dem Wert für endkey übereinstimmen. Ja Boolescher Wert Ja
key Nur Dokumente mit IDs zurückgeben, die mit dem angegebenen Schlüssel übereinstimmen. Ja Zeichenfolge
keys Nur Dokumente mit IDs zurückgeben, die mit einem der angegebenen Schlüssel übereinstimmen. Ja Liste der Zeichenfolgen
limit Die Anzahl der zurückgegebenen Dokumente auf den angegebenen Wert begrenzen. Ja Numerisch
meta Kurzform zum Kombinieren der drei Argumente conflicts, deleted_conflicts und revs_info. Die Angabe meta=true ist gleichbedeutend mit conflicts=true&deleted_conflicts=true&revs_info=true. Ja Boolescher Wert Falsch
r Gibt den Wert für das Quorum für Lesevorgänge an. Ja Numerisch 2
revs_info Schließt detaillierte Informationen zu allen bekannten Dokumentrevisionen ein. Ja Boolescher Wert Falsch
skip Die angegebene Anzahl von Datensätzen überspringen, bevor die Ergebnisse zurückgegeben werden. Ja Numerisch 0
startkey Datensätze ab dem angegebenen Schlüssel zurückgeben. Ja Zeichenfolge
startkey_docid Datensätze ab der angegebenen Dokument-ID zurückgeben. Wenn startkey nicht festgelegt ist, wird dieses Argument ignoriert. Ja Zeichenfolge

Was ist der Endpunkt _all_docs?

Die Operationen „ GET “ und „ POST $SERVICE_URL/$DATABASE/_all_docs “ rufen Daten aus dem Primärindex einer IBM Cloudant-Datenbank ab, d. h. aus dem Index, der die „ _id “ jedes Dokuments in der richtigen Reihenfolge sortiert. Der Endpunkt „ _all_docs “ akzeptiert eine Reihe optionaler Parameter, mit denen der Umfang der angeforderten Daten konfiguriert und festgelegt werden kann, ob der Hauptteil jedes Dokuments zurückgegeben werden soll oder nicht. Wenn keine Parameter angegeben werden, streamt „ _all_docs “ alle Dokumente einer Datenbank und gibt dabei nur die Dokument- _id sowie das aktuelle Token „ _rev “ zurück.

Seitenaufteilung

Verwenden Sie eine schlüsselbasierte Paginierung für alle Dokumente. Spezifische Details und Beispiele finden Sie in der API-Dokumentation unter Paging für alle Dokumente.

Anmerkungen

  1. Die Verwendung des Abfragearguments include_docs=true kann Auswirkungen auf die Leistung haben.

  2. Wenn Sie das Argument keys verwenden, ist es möglicherweise einfacher, eine POST-Anforderung anstelle einer GET-Anforderung zu senden, wenn mehrere Zeichenfolgen erforderlich sind, um die gewünschten Schlüssel aufzulisten.

  3. Wenn das Argument keys verwendet und die Revision gelöscht wird, ist das zurückgegebene Attribut value ein JSON-Objekt mit der aktuellen Revision (_rev) des Dokuments und ein Attribut _deleted. Das Attribut doc wird nur gefüllt, wenn Sie in der Anforderung include_docs=true angegeben haben. Das Argument hat den Wert null, wenn das Dokument gelöscht wird.

Im folgenden Beispiel werden alle Dokumente in einer Datenbank unter Verwendung von HTTP aufgelistet:

GET /_all_docs HTTP/1.1

Im folgenden Beispiel werden alle Dokumente in einer Datenbank aufgelistet:

curl -H "Authorization: Bearer $API_BEARER_TOKEN" -X POST "$SERVICE_URL/orders/_all_docs" -H "Content-Type: application/json" --data '{ "include_docs": true, "startkey": "abc", "limit": 10}'
import com.ibm.cloud.cloudant.v1.Cloudant;
import com.ibm.cloud.cloudant.v1.model.AllDocsResult;
import com.ibm.cloud.cloudant.v1.model.PostAllDocsOptions;
Cloudant service = Cloudant.newInstance();
PostAllDocsOptions docsOptions =
    new PostAllDocsOptions.Builder()
        .db("orders")
        .includeDocs(true)
        .startKey("abc")
        .limit(10)
        .build();
AllDocsResult response =
    service.postAllDocs(docsOptions).execute().getResult();
System.out.println(response);
const { CloudantV1 } = require('@ibm-cloud/cloudant');
const service = CloudantV1.newInstance({});
service.postAllDocs({
  db: 'orders',
  includeDocs: true,
  startKey: 'abc',
  limit: 10
}).then(response => {
  console.log(response.result);
});
from ibmcloudant.cloudant_v1 import CloudantV1
service = CloudantV1.new_instance()
response = service.post_all_docs(
  db='orders',
  include_docs=True,
  start_key='abc',
  limit=10
).get_result()
print(response)
postAllDocsOptions := service.NewPostAllDocsOptions(
  "orders",
)
postAllDocsOptions.SetIncludeDocs(true)
postAllDocsOptions.SetStartKey("abc")
postAllDocsOptions.SetLimit(10)
allDocsResult, response, err := service.PostAllDocs(postAllDocsOptions)
if err != nil {
  panic(err)
}
b, _ := json.MarshalIndent(allDocsResult, "", "  ")
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.

Im folgenden Beispiel werden unter Verwendung von HTTP alle Dokumente in einer Datenbank aufgelistet, die mit mindestens einem der angegebenen Schlüssel übereinstimmen:

GET /_all_docs?keys=["somekey","someotherkey"] HTTP/1.1

Sehen Sie sich das folgende Beispiel an, um alle Dokumente in einer Datenbank aufzulisten, die mindestens einem der angegebenen Schlüssel entsprechen:

curl -H "Authorization: Bearer $API_BEARER_TOKEN" -X POST "$SERVICE_URL/orders/_all_docs" -H "Content-Type: application/json" --data '{
  "include_docs": true,
  "keys": ["somekey", "someotherkey"],
  "limit": 10
}'
import com.ibm.cloud.cloudant.v1.Cloudant;
import com.ibm.cloud.cloudant.v1.model.AllDocsResult;
import com.ibm.cloud.cloudant.v1.model.PostAllDocsOptions;
import java.util.Arrays;
Cloudant service = Cloudant.newInstance();
PostAllDocsOptions docsOptions =
    new PostAllDocsOptions.Builder()
        .db("orders")
        .includeDocs(true)
        .keys(Arrays.asList("somekey", "someotherkey"))
        .limit(10)
        .build();
AllDocsResult response =
    service.postAllDocs(docsOptions).execute().getResult();
System.out.println(response);
const { CloudantV1 } = require('@ibm-cloud/cloudant');
const service = CloudantV1.newInstance({});
service.postAllDocs({
  db: 'orders',
  includeDocs: true,
  keys: ['somekey', 'someotherkey'],
  limit: 10
}).then(response => {
  console.log(response.result);
});
from ibmcloudant.cloudant_v1 import CloudantV1
service = CloudantV1.new_instance()
response = service.post_all_docs(
  db='orders',
  include_docs=True,
  keys=['somekey', 'someotherkey'],
  limit=10
).get_result()
print(response)
postAllDocsOptions := service.NewPostAllDocsOptions(
		"orders",
	)
	postAllDocsOptions.SetIncludeDocs(true)
	postAllDocsOptions.SetKeys([]string{"somekey", "someotherkey"})
	postAllDocsOptions.SetLimit(10)
	
	allDocsResult, response, err := service.PostAllDocs(postAllDocsOptions)
	if err != nil {
		panic(err)
	}
	
	b, _ := json.MarshalIndent(allDocsResult, "", "  ")
	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 ist ein JSON-Objekt, das alle Dokumente in der Datenbank enthält, die mit den Parametern übereinstimmen. In der folgenden Tabelle wird die Bedeutung der einzelnen Felder beschrieben:

JSON-Objekt-Felder
Feld Beschreibung Typ
offset Offset vom Anfang der Dokumentliste Numerisch, Null (der Typ kann null sein, wenn keys angegeben werden)
rows Array der Dokumentobjekte. Array
total_rows Die Anzahl der Dokumente in der Datenbank oder Ansicht, die mit den Parametern der Abfrage übereinstimmen. Numerisch
pdate_seq Aktuelle Aktualisierungsreihenfolge für die Datenbank. Zeichenfolge

Beispielantwort für eine Anforderung zum Auflisten aller Dokumente in einer Datenbank:

{
	"total_rows": 3,
	"offset": 0,
	"rows": [
		{
			"id": "5a049246-179f-42ad-87ac-8f080426c17c",
			"key": "5a049246-179f-42ad-87ac-8f080426c17c",
			"value": {
				"rev": "2-9d5401898196997853b5ac4163857a29"
			}
		},
		{
			"id": "96f898f0-f6ff-4a9b-aac4-503992f31b01",
			"key": "96f898f0-f6ff-4a9b-aac4-503992f31b01",
			"value": {
				"rev": "2-ff7b85665c4c297838963c80ecf481a3"
			}
		},
		{
			"id": "d1f61e66-7708-4da6-aa05-7cbc33b44b7e",
			"key": "d1f61e66-7708-4da6-aa05-7cbc33b44b7e",
			"value": {
				"rev": "2-cbdef49ef3ddc127eff86350844a6108"
			}
		}
	]
}