English | 简体中文 | 繁體中文
查询

MongoDB\Driver\Server::getType()函数—用法及示例

「 获取MongoDB服务器的类型 」


函数名: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()方法获取服务器类型,并根据返回值进行相应的处理和输出。

补充纠错
热门PHP函数
分享链接