setReadPreference() 공개 메소드

public setReadPreference ( $readPreference, $tags = null )
예제 #1
0
 /**
  * Set whether secondary read queries are allowed for this database.
  *
  * This method wraps setSlaveOkay() for driver versions before 1.3.0. For
  * newer drivers, this method wraps setReadPreference() and specifies
  * SECONDARY_PREFERRED.
  *
  * @see http://php.net/manual/en/mongodb.setreadpreference.php
  * @see http://php.net/manual/en/mongodb.setslaveokay.php
  * @param boolean $ok
  * @return boolean Previous slaveOk value
  */
 public function setSlaveOkay($ok = true)
 {
     $prevSlaveOkay = $this->getSlaveOkay();
     if ($ok) {
         // Preserve existing tags for non-primary read preferences
         $readPref = $this->getReadPreference();
         $tags = !empty($readPref['tagsets']) ? $readPref['tagsets'] : [];
         $this->mongoDB->setReadPreference(\MongoClient::RP_SECONDARY_PREFERRED, $tags);
     } else {
         $this->mongoDB->setReadPreference(\MongoClient::RP_PRIMARY);
     }
     return $prevSlaveOkay;
 }
예제 #2
0
 /**
  * Set whether secondary read queries are allowed for this database.
  *
  * This method wraps setSlaveOkay() for driver versions before 1.3.0. For
  * newer drivers, this method wraps setReadPreference() and specifies
  * SECONDARY_PREFERRED.
  *
  * @see http://php.net/manual/en/mongodb.setreadpreference.php
  * @see http://php.net/manual/en/mongodb.setslaveokay.php
  * @param boolean $ok
  * @return boolean Previous slaveOk value
  */
 public function setSlaveOkay($ok = true)
 {
     if (version_compare(phpversion('mongo'), '1.3.0', '<')) {
         return $this->mongoDB->setSlaveOkay($ok);
     }
     $prevSlaveOkay = $this->getSlaveOkay();
     if ($ok) {
         // Preserve existing tags for non-primary read preferences
         $readPref = $this->getReadPreference();
         $tags = !empty($readPref['tagsets']) ? $readPref['tagsets'] : array();
         $this->mongoDB->setReadPreference(\MongoClient::RP_SECONDARY_PREFERRED, $tags);
     } else {
         $this->mongoDB->setReadPreference(\MongoClient::RP_PRIMARY);
     }
     return $prevSlaveOkay;
 }
예제 #3
0
 public function readNearest(array $tags = null)
 {
     $this->mongoDB->setReadPreference(\MongoClient::RP_NEAREST, $tags);
     return $this;
 }