Panoramica

I documenti sono oggetti JSON. I documenti sono anche contenitori di dati, e sono la base del database IBM® Cloudant® for IBM Cloud®.

Se si utilizza un servizio IBM Cloudant su IBM Cloud®, i documenti sono limitati a una dimensione massima di 1 MB. Il superamento di questo limite causa un 413 errore.

IBM Cloudant utilizza un modello di coerenza finale per i dati. Se si utilizza il modello eventualmente coerente, in alcune condizioni è possibile recuperare il contenuto di documenti più vecchi. Ad esempio, i contenuti più vecchi vengono recuperati quando l'applicazione scrive o aggiorna un documento che viene immediatamente seguito dalla lettura dello stesso documento.

In altre parole, la tua applicazione vedrebbe il contenuto del documento così com'era prima che avvenisse la scrittura o l'aggiornamento. Per ulteriori informazioni su questo modello, consultare l'argomento sulla coerenza.

Campi del documento

Tutti i documenti devono avere due campi:

Oltre a questi due campi obbligatori, i documenti possono generalmente contenere qualsiasi altro contenuto descrivibile utilizzando JSON, fatte salve alcune avvertenze descritte in dettaglio nelle sezioni seguenti.

ID documento

Il formato dell'ID di un documento varia a seconda che il database sia partizionato o meno. Quando un database è partizionato, la chiave di partizione per ogni documento è definita come parte dell'ID del documento, come descritto in dettaglio nella sezione successiva.

ID nei database partizionati

Quando si utilizza un database partizionato, l'ID del documento specifica sia la chiave di partizione che la chiave del documento. Queste chiavi sono specificate dividendo l'ID del documento in due parti separate da due punti:

$PARTITION_KEY:$DOCUMENT_KEY

Il $PARTITION_KEY potrebbe essere lo stesso tra i documenti. L'intestazione $DOCUMENT_KEY deve essere univoco all'interno di ciascuna partizione. Cioè, nel complesso l'intero documento L'ID deve essere univoco all'interno di un database. Una chiave di documento potrebbe contenere ulteriori caratteri due punti.

ID nei database non partizionati

Per i database non partizionati, il _id il campo può essere creato da te oppure generato automaticamente come UUID da IBM Cloudant.

Se si sceglie di specificare il campo _id del documento, questo deve essere limitato a non più di 7168 caratteri ( 7k ).

Come nel caso dei database partizionati, l'ID del documento deve essere univoco all'interno di un database.

Limitazioni dei nomi campo

I nomi dei campi che iniziano con il carattere di sottolineatura (_) sono riservati in IBM Cloudant. Questa regola significa che normalmente non è possibile avere nomi di campi propri che iniziano con un trattino basso. Ad esempio, il campo example sarebbe accettato, ma il campo _example genererebbe un messaggio doc_validation di errore.

Ecco un esempio di documento JSON che tenta di creare un campo con un prefisso trattino basso:

{
	"_top_level_field_name": "some data"
}

Visualizza un messaggio di errore che viene restituito quando si tenta di creare un campo con un prefisso trattino basso:

{
	"error": "doc_validation",
	"reason": "Bad special document member: _top_level_field_name"
}

Tuttavia, se il nome del campo si riferisce a un oggetto annidato all'interno del documento, è possibile utilizzare un prefisso con trattino basso per il nome del campo.

Ecco un esempio di documento JSON che tenta di creare un campo con un prefisso trattino basso, annidato all'interno di un oggetto:

{
	"another_top_level_field_name": "some data",
	"another_field": {
		"_lower_level_field_name": "some more data"
	}
}

Ecco un esempio di messaggio di conferma (abbreviato) visualizzato quando viene creato un campo nidificato con prefisso trattino basso:

{
	"ok": true,
	"id": "2",
	"rev": "1-9ce...8d4"
}

Quorum - scrittura e lettura dei dati

In un sistema distribuito, è possibile che una richiesta richieda un po' di tempo per essere completata. Un meccanismo di "quorum" viene utilizzato per aiutare a determinare quando una richiesta, come una scrittura o una lettura, viene completata con successo.

Per ulteriori informazioni sulle impostazioni del quorum e sulle loro implicazioni sui sistemi IBM Cloudant dedicati, contattare IBM Cloudant l'assistenza.

TTL (Time to live)

Il tempo di vita (TTL) è una proprietà dei dati, in base alla quale, dopo un periodo di tempo relativo o in un momento assoluto, i dati vengono considerati scaduti. I dati stessi potrebbero essere cancellati o spostati in una posizione alternativa (archivio).

IBM Cloudant non supporta le funzioni Time to Live all'interno del database. I clienti potrebbero implementare questa funzionalità indicizzando i documenti in base alla data di scadenza utilizzando [Views] e interrogando periodicamente la vista per trovare i documenti che devono essere rimossi.