public function getReadPreference()
{
if ($this->readPreference === null) {
$this->readPreference = new \MongoDB\Driver\ReadPreference(\MongoDB\Driver\ReadPreference::RP_PRIMARY);
}
$mode = $this->readPreference->getMode();
switch ($mode) {
case \MongoDB\Driver\ReadPreference::RP_PRIMARY_PREFERRED:
$type = \MongoClient::RP_PRIMARY_PREFERRED;
break;
case \MongoDB\Driver\ReadPreference::RP_SECONDARY:
$type = \MongoClient::RP_SECONDARY;
break;
case \MongoDB\Driver\ReadPreference::RP_SECONDARY_PREFERRED:
$type = \MongoClient::RP_SECONDARY_PREFERRED;
break;
case \MongoDB\Driver\ReadPreference::RP_NEAREST:
$type = \MongoClient::RP_NEAREST;
break;
default:
$type = \MongoClient::RP_PRIMARY;
}
$readPreference = ['type' => $type];
if ($this->readPreference->getTagSets() !== null && $this->readPreference->getTagSets() !== []) {
$readPreference['tagsets'] = $this->readPreference->getTagSets();
}
return $readPreference;
}