Présentation

Les documents sont des objets JSON. Les documents sont également des conteneurs pour vos données et constituent la base de la base de données IBM® Cloudant® for IBM Cloud®.

Si vous utilisez un service IBM Cloudant dans IBM Cloud®, la taille des documents ne peut pas dépasser 1 Mo. Le dépassement de cette limite entraîne une erreur « 413 ».

IBM Cloudant utilise un modèle cohérent à terme pour les données. Si vous utilisez le modèle cohérent à terme, il est possible d'extraire un contenu de document plus ancien, dans certaines conditions. Par exemple, le contenu plus ancien est extrait lorsque votre application écrit ou met à jour un document et si l'opération est suivie immédiatement d'une lecture de ce document.

En d'autres termes, votre application peut voir le contenu du document tel qu'il existait avant l'écriture ou la mise à jour. Pour plus d'informations sur ce modèle, voir la rubrique sur la cohérence.

Zones de document

Tous les documents doivent comporter deux zones :

En plus de ces deux zones obligatoires, les documents peuvent généralement comporter tout autre contenu pouvant être décrit à l'aide d'un JSON, avec quelques exceptions détaillées dans les sections ci-après.

ID de document

Le format d'un ID de document varie selon qu'une base de données est partitionnée ou non. Lorsqu'une base de données est partitionnée, la clé de partitionnement pour chaque document est définie dans l'ID de document, comme détaillé dans la section suivante.

ID dans les bases de données partitionnées

Lorsque vous utilisez une base de données partitionnée, l'ID de document spécifie la clé de partitionnement et la clé de document. Vous spécifiez ces clés en divisant l'ID de document en deux parties séparées par un signe deux-points :

$PARTITION_KEY:$DOCUMENT_KEY

$PARTITION_KEY peut être identique dans plusieurs documents. :NONE. $DOCUMENT_KEY doit être unique dans chaque partition. En d'autres termes, l'ID de document entier doit être unique dans une base de données. Une clé de document peut contenir d'autres signes deux-points.

ID dans les bases de données non partitionnées

Pour les bases de données non partitionnées, le champ « _id » est soit créé par vos soins, soit généré automatiquement sous la forme d’un UUID par IBM Cloudant.

Si vous choisissez de spécifier la zone _id du document, celle-ci ne doit pas comporter plus de 7168 caractères (7 k).

Comme pour les bases de données partitionnées, l'ID de document doit être unique dans une base de données.

Restrictions relatives aux noms de zone

Les noms de zone qui commencent par un trait de soulignement (_) sont réservés dans IBM Cloudant. Etant donné cette règle, vous ne pouvez pas utiliser vos propres noms de zone commençant par un trait de soulignement. Par exemple, le nom de zone example est admis, mais le nom de zone _example génère un message d'erreur de type doc_validation.

Voici un exemple de document JSON qui tente de créer une zone avec un trait de soulignement comme préfixe :

{
	"_top_level_field_name": "some data"
}

Voici le message d'erreur qui est renvoyé lorsque vous tentez de créer une zone avec un trait de soulignement comme préfixe :

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

Cependant, si le nom de zone est celui d'un objet imbriqué dans le document, vous pouvez utiliser un trait de soulignement comme préfixe dans le nom de zone.

Voici un exemple de document JSON qui tente de créer une zone avec un trait de soulignement comme préfixe imbriquée dans un objet :

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

Voici un exemple de message de réussite (abrégé) renvoyé lorsqu'un nom de zone imbriqué comportant un trait de soulignement comme préfixe est créé :

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

Quorum - Ecriture et lecture des données

Sur un système distribué, il se peut que l'exécution d'une demande prenne un certain temps. Un mécanisme de "quorum" est utilisé pour déterminer à quel moment une demande, comme une écriture ou une lecture, aboutit.

Pour plus d'informations sur les paramètres de quorum et leurs implications sur les systèmes IBM Cloudant dédiés, contactez le support d'IBM Cloudant.

Temps de vie

La durée de vie (TTL) est une propriété des données, selon laquelle, au bout d'un laps de temps relatif, ou à un moment précis, les données sont considérées comme périmées. Les données elles-même peuvent être supprimées ou déplacées dans un emplacement (archive) alternatif.

IBM Cloudant ne prend pas en charge les fonctions Time to Live au sein de la base de données. Les clients pourraient mettre en œuvre cette fonctionnalité en indexant les documents par leur date d'expiration à l'aide de [Views] et en interrogeant périodiquement la vue pour trouver les documents à supprimer.