Ottenere i documenti
Per elencare tutti i documenti di un database, inviare una GET richiesta a https://$ACCOUNT.cloudant.com/$DATABASE/_all_docs.
L'endpoint _all_docs accetta le seguenti stringhe di query e gli argomenti del corpo JSON:
| Argomento | Descrizione | Facoltativo | Immettere | Valore predefinito |
|---|---|---|---|---|
conflicts |
Può essere impostato solo se include_docs è true. Aggiunge informazioni sui conflitti a ciascun documento. |
Sì | Booleano | False |
deleted_conflicts |
Restituisce informazioni sulle revisioni in conflitto eliminate. | Sì | Booleano | False |
descending |
Restituisce i documenti in ordine decrescente di chiave. | Sì | Booleano | False |
endkey |
Smette di restituire i record quando viene raggiunta la chiave specificata. | Sì | Stringa | |
endkey_docid |
Interrompe la restituzione dei record quando viene raggiunto l'ID documento specificato. Se endkey non è impostato, questo argomento viene ignorato. |
Sì | Stringa | |
include_docs |
Includere il contenuto completo dei documenti nella dichiarazione. | Sì | Booleano | False |
inclusive_end |
Include le righe la cui chiave è uguale al valore endkey". |
Sì | Booleano | Vero |
key |
Restituisce solo i documenti con ID che corrispondono alla chiave specificata. | Sì | Stringa | |
keys |
Restituisce solo i documenti con ID che corrispondono a una delle chiavi specificate. | Sì | Elenco di stringhe | |
limit |
Limita il numero di documenti restituiti al numero specificato. | Sì | Numerico | |
meta |
Combinazione abbreviata dei tre argomenti seguenti: conflicts, deleted_conflicts, e revs_info. L'uso di meta=true è uguale all'uso di conflicts=true&deleted_conflicts=true&revs_info=true. |
Sì | Booleano | False |
r |
Specificare il valore del quorum di lettura. | Sì | Numerico | 2 |
revs_info |
Include informazioni dettagliate su tutte le revisioni note del documento. | Sì | Booleano | False |
skip |
Salta questo numero di record prima di restituire i risultati. | Sì | Numerico | 0 |
startkey |
Restituisce i record a partire dalla chiave specificata. | Sì | Stringa | |
startkey_docid |
Restituisce i record a partire dall'ID documento specificato. Se startkey non è impostato, questo argomento viene ignorato. |
Sì | Stringa |
Qual è l'endpoint di _all_docs ?
Le operazioni GET e POST $SERVICE_URL/$DATABASE/_all_docs recuperano i dati dall' indice primario di un database IBM Cloudant, cioè l'indice che mantiene l'ordine di ogni documento _id.
L'endpoint _all_docs accetta una serie di parametri opzionali che configurano l'intervallo di dati richiesti e se restituire o meno il corpo di ciascun documento. Senza parametri, _all_docs invia in streaming tutti
i documenti di un database, restituendo solo il documento _id e il suo token _rev corrente.
Paginazione
Utilizzare l'impaginazione a chiave per tutti i documenti. Per dettagli ed esempi specifici, consultare l'argomento della documentazione API Paginazione su tutti i documenti.
Note
-
L'uso di
include_docs=truepotrebbe avere implicazioni sulle prestazioni. -
Quando si usa l'argomento
keys, potrebbe essere più semplice inviare una richiestaPOSTanziché una richiestaGET, se si ha bisogno di più stringhe per elencare le chiavi desiderate. -
Quando si usa l'argomento
keyse la revisione viene cancellata, l'attributovaluerestituito è un oggetto JSON con l'attuale_revdel documento e un_deletedattributo. L'attributodocviene popolato solo se specificatoinclude_docs=truenella richiesta enullse il documento viene cancellato.
Si veda il seguente esempio che utilizza HTTP per elencare tutti i documenti di un database:
GET /_all_docs HTTP/1.1
Vedere l'esempio seguente per elencare tutti i documenti di un database:
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))
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.
Si veda il seguente esempio che utilizza HTTP per elencare tutti i documenti di un database che corrispondono ad almeno una delle chiavi specificate:
GET /_all_docs?keys=["somekey","someotherkey"] HTTP/1.1
Vedere l'esempio seguente per elencare tutti i documenti di un database che corrispondono ad almeno una delle chiavi specificate:
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))
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 è un oggetto JSON che contiene tutti i documenti del database che corrispondono ai parametri. La tabella seguente descrive il significato dei singoli campi:
| Campo | Descrizione | Immettere |
|---|---|---|
offset |
Offset dell'inizio dell'elenco dei documenti. | Numeric, Null (il tipo può essere null quando keys sono specificati) |
rows |
Array di oggetti documento. | Array |
total_rows |
Numero di documenti nel database o nella vista che corrispondono ai parametri della query. | Numerico |
pdate_seq |
Sequenza di aggiornamento corrente per il database. | Stringa |
Si veda il seguente esempio di risposta dopo una richiesta di tutti i documenti di un database:
{
"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"
}
}
]
}