MongoCursor::slaveOkay

(PECL mongo >=0.9.4)

MongoCursor::slaveOkayDéfinit si la requête peut être effectuée sur un serveur secondaire (obsolète)

Description

public MongoCursor::slaveOkay ([ bool $okay = TRUE ] ) : MongoCursor
Avertissement

Cette méthode est obsolète depuis la version 1.5.0. Veuillez utiliser la méthode MongoCursor::setReadPreference() ainsi que Préférences de lecture.

L'appel à cette méthode fera que la driver liera sur les secondaires si :

  • Vous utilisez un jeu de réplication, et
  • Vous avez créé une instance MongoClient en utilisant l'option "replicaSet" => "setName" et
  • Il y a un secondaire en bonne santé qui peut être atteint par le driver.
Vous pouvez savoir quel serveur a été utilisé pour cette requête en appelant la méthode MongoCursor::info() après l'exécution de la requête. L'information sera contenue dans le champ server.

Notez que vous devriez utiliser cette fonction même si vous n'utilisez pas la lecture automatique sur les secondaires. Si vous vous connectez directement sur un secondaire d'un jeu de réplications, vous devrez continuer d'utiliser cette méthode, qui informe la base de données que vous êtes prêt à recevoir d'anciennes données. Si vous ne l'appelez pas, vous recevrez une erreur de type "not master" lors de l'exécution de la requête.

Cette méthode écrasera la variable statique MongoCursor::$slaveOkay. Elle écrasera aussi Mongo::setSlaveOkay(), MongoDB::setSlaveOkay() et MongoCollection::setSlaveOkay().

Liste de paramètres

okay

Si l'on peut effectuer la requête sur un serveur secondaire.

Valeurs de retour

Returns this cursor.

Erreurs / Exceptions

Lance une exception MongoCursorException si le curseur a commencé à être parcouru.

Exemples

Exemple #1 Exemple avec MongoCursor::slaveOkay()

<?php

MongoCursor
::$slaveOkay false;

// On ne peut pas faire la requête sur un serveur secondaire
$cursor $collection->find();

// On peut faire la requête sur un serveur secondaire
$cursor $collection->find()->slaveOkay();

MongoCursor::$slaveOkay true;

// On peut faire la requête sur un serveur secondaire
$cursor $collection->find();

// On ne peut pas faire la requête sur un serveur secondaire
$cursor $collection->find()->slaveOkay(false);

?>

Voir aussi

Historique

Version Description
1.5.0 Cette méthode est devenue obsolète, en faveur de la méthode MongoCursor::setReadPreference() et Préférences de lecture.

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top