(mongodb >=1.1.0)
MongoDB\Driver\ReadConcern contrÎle le niveau d'isolation pour les opérations de lecture pour les ensembles de réplicas et les fragments d'ensembles de réplicas. Cette option nécessite MongoDB 3.2 ou ultérieur.
null si aucun niveau n'a été spécifié.
MongoDB\Driver\ReadConcern::AVAILABLE
Par défaut pour les lectures sur les secondaires lorsque
afterClusterTime et level ne sont pas
spécifiés.
La requĂȘte renvoie les donnĂ©es les plus rĂ©centes de l'instance. Ne garantit pas que les donnĂ©es ont Ă©tĂ© Ă©crites sur la majoritĂ© des membres de l'ensemble de rĂ©plicas (c'est-Ă -dire qu'elles peuvent ĂȘtre annulĂ©es).
Pour les collections non fragmentées (y compris les collections dans un
déploiement autonome ou un déploiement de réplicas), les lectures
"local" et "available" se comportent de maniĂšre identique.
Pour un cluster partagé, la lecture "available" fournit
une plus grande tolérance aux partitions car elle n'attend pas pour
garantir des garanties de cohĂ©rence. Cependant, une requĂȘte avec
une lecture "available" peut renvoyer des documents orphelins
si le fragment est en cours de migration de morceaux car la lecture
"available", contrairement Ă la lecture
"local", ne contacte pas le
primaire du fragment ni les serveurs de configuration pour obtenir des métadonnées mises à jour.
MongoDB\Driver\ReadConcern::LINEARIZABLE
La requĂȘte renvoie les donnĂ©es qui reflĂštent toutes les Ă©critures rĂ©ussies Ă©mises avec un
niveau d'écriture de "majority" et
reconnu avant le début de l'opération de lecture. Pour les ensembles de réplicas
qui fonctionnent avec writeConcernMajorityJournalDefault défini
sur true, la lecture linéarisable renvoie des données qui ne seront jamais
annulées.
Avec writeConcernMajorityJournalDefault défini sur
false, MongoDB n'attendra pas que les écritures w: "majority"
soient durables avant d'accuser réception des écritures. En tant que tel,
les opĂ©rations d'Ă©criture "majority" pourraient Ă©ventuellement ĂȘtre annulĂ©es
en cas de perte d'un membre de l'ensemble de réplicas.
Il est possible de spécifier un niveau de lecture linéarisable pour les opérations de lecture sur le primaire uniquement.
La lecture linĂ©arisable garantit que les opĂ©rations de lecture spĂ©cifient un filtre de requĂȘte qui identifie de maniĂšre unique un seul document.
Toujours utiliser maxTimeMS avec une lecture linéarisable
en cas de non-disponibilité de la majorité des membres porteurs de données.
maxTimeMS garantit que l'opération ne bloque pas
indéfiniment et garantit plutÎt que l'opération renvoie une erreur si
le niveau de lecture ne peut pas ĂȘtre satisfait.
La lecture linéarisable nécessite MongoDB 3.4.
MongoDB\Driver\ReadConcern::LOCAL
Défaut pour les lectures sur le primaire si level n'est pas
spécifié et pour les lectures sur les secondaires si level
n'est pas spécifié mais que afterClusterTime est spécifié.
La requĂȘte renvoie les donnĂ©es les plus rĂ©centes de l'instance. Ne garantit pas que les donnĂ©es ont Ă©tĂ© Ă©crites sur la majoritĂ© des membres de l'ensemble de rĂ©plicas (c'est-Ă -dire qu'elles peuvent ĂȘtre annulĂ©es).
MongoDB\Driver\ReadConcern::MAJORITYLa requĂȘte renvoie les donnĂ©es les plus rĂ©centes reconnues comme ayant Ă©tĂ© Ă©crites sur la majoritĂ© des membres de l'ensemble de rĂ©plicas.
Pour utiliser le niveau de lecture "majority", les ensembles de réplicas
doivent utiliser le moteur de stockage WiredTiger et le protocole d'élection version 1.
MongoDB\Driver\ReadConcern::SNAPSHOT
La lecture "snapshot" est disponible pour les transactions
multi-documents, et à partir de MongoDB 5.0, pour certaines opérations de lecture
en dehors des transactions multi-documents.
Si la transaction ne fait pas partie d'une session cohérente, lors de
la validation de la transaction avec un niveau d'écriture "majority", les
opérations de transaction sont garanties d'avoir lu à partir d'un instantané des données
majoritairement engagées.
Si la transaction fait partie d'une session cohérente, lors de
la validation de la transaction avec un niveau d'écriture "majority", les
opérations de transaction sont garanties d'avoir lu à partir d'un instantané des données
majoritairement engagées qui assure la cohérence causale avec l'opération immédiatement
précédent le début de la transaction.
En dehors des transactions multi-documents, le niveau de lecture
"snapshot" est disponible sur les primaires et les secondaires
pour les opérations de lecture suivantes : find,
aggregate et distinct (sur
les collections non fragmentées). Toutes les autres commandes de lecture interdisent
"snapshot".
| Version | Description |
|---|---|
| PECL mongodb 2.3.0 | Ajout des propriétés publiques readonly. |
| PECL mongodb 1.11.0 |
Ajout de la constante
|
| PECL mongodb 1.7.0 | Implémente Serializable. |
| PECL mongodb 1.4.0 |
Ajout de la constante
|
| PECL mongodb 1.2.0 |
Ajout de la constante
Implémente MongoDB\BSON\Serializable. |