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:
| 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
-
Die Verwendung des Abfragearguments
include_docs=truekann Auswirkungen auf die Leistung haben. -
Wenn Sie das Argument
keysverwenden, ist es möglicherweise einfacher, einePOST-Anforderung anstelle einerGET-Anforderung zu senden, wenn mehrere Zeichenfolgen erforderlich sind, um die gewünschten Schlüssel aufzulisten. -
Wenn das Argument
keysverwendet und die Revision gelöscht wird, ist das zurückgegebene Attributvalueein JSON-Objekt mit der aktuellen Revision (_rev) des Dokuments und ein Attribut_deleted. Das Attributdocwird nur gefüllt, wenn Sie in der Anforderunginclude_docs=trueangegeben haben. Das Argument hat den Wertnull, 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:
| 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"
}
}
]
}