MongoDB\Driver\Server::getType()

获取MongoDB服务器的类型

首字母:M

函数名:MongoDB\Driver\Server::getType()

函数描述:该函数用于获取MongoDB服务器的类型。

适用版本:PHP 5.6.0及以上版本

用法:

public function MongoDB\Driver\Server::getType(): int

参数:无

返回值:返回一个整数,表示MongoDB服务器的类型。返回值可以是下列常量之一:

  • MongoDB\Driver\Server::TYPE_UNKNOWN (0):未知类型
  • MongoDB\Driver\Server::TYPE_STANDALONE (1):单节点服务器
  • MongoDB\Driver\Server::TYPE_MONGOS (2):MongoDB分片服务器
  • MongoDB\Driver\Server::TYPE_POSSIBLE_PRIMARY (3):可能是主节点
  • MongoDB\Driver\Server::TYPE_RS_PRIMARY (4):副本集中的主节点
  • MongoDB\Driver\Server::TYPE_RS_SECONDARY (5):副本集中的从节点
  • MongoDB\Driver\Server::TYPE_RS_ARBITER (6):副本集中的仲裁节点
  • MongoDB\Driver\Server::TYPE_RS_OTHER (7):副本集中的其他类型节点

示例:

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$servers = $manager->getServers();
foreach ($servers as $server) {
 $type = $server->getType();
 switch ($type) {
 case MongoDB\Driver\Server::TYPE_UNKNOWN:
 echo "Unknown type\n";
 break;
 case MongoDB\Driver\Server::TYPE_STANDALONE:
 echo "Standalone server\n";
 break;
 case MongoDB\Driver\Server::TYPE_MONGOS:
 echo "Sharded server\n";
 break;
 case MongoDB\Driver\Server::TYPE_POSSIBLE_PRIMARY:
 echo "Possible primary server\n";
 break;
 case MongoDB\Driver\Server::TYPE_RS_PRIMARY:
 echo "Primary server in replica set\n";
 break;
 case MongoDB\Driver\Server::TYPE_RS_SECONDARY:
 echo "Secondary server in replica set\n";
 break;
 case MongoDB\Driver\Server::TYPE_RS_ARBITER:
 echo "Arbiter server in replica set\n";
 break;
 case MongoDB\Driver\Server::TYPE_RS_OTHER:
 echo "Other server in replica set\n";
 break;
 }
}

上述示例中,首先创建一个MongoDB\Driver\Manager对象来连接到MongoDB服务器。然后使用getManager()方法获取所有的服务器对象,然后遍历每个服务器对象,使用getType()方法获取服务器类型,并根据返回值进行相应的处理和输出。

同首字母函数