PHP - Manual: MongoClient::close
2025-10-31
(PECL mongo >=1.3.0)
MongoClient::close — 关闭连接
This extension that defines this method is deprecated. Instead, the MongoDB extension should be used. There is no equivalent for this method in the new extension.
$connection
  ] ) : boolMongoClient::close() 方法强制关闭一个数据库连接,哪怕使用的是持久连接。 在正常情况下,你绝不需要这么做。
connection
     
       如果没有指定 connection,或者是 FALSE,将会选择关闭写作操作的连接。
       如果配置为单节点,将会关闭整个连接,但是如果你连接到一个集群,
       close() 会仅仅关闭 primary 节点的连接。
      
       如果 connection 是 TRUE,连接管理器将会关闭所有由它管理的连接。
       这也会包括创建对象时所引用的连接字符串之外的连接。
      
如果 connection 是一个字符串参数,它将仅仅关闭由该 hash 标识的连接。 Hash 是调用 MongoClient::getConnections() 所返回,能够表示一个连接。
返回连接是否成功关闭。
Example #1 MongoClient::close() 例子
这个例子演示了如何选择性地仅关闭备份节点的所有连接。
<?php
// 连接到集群
$a = new MongoClient("mongodb://whisky:13000/?replicaset=seta");
$connections = $a->getConnections();
foreach ( $connections as $con )
{
    // 遍历所有连接,如果类型是 "SECONDARY" 则关闭连接
    if ( $con['connection']['connection_type_desc'] == "SECONDARY" )
    {
        echo "Closing '{$con['hash']}': ";
        $closed = $a->close( $con['hash'] );
        echo $closed ? "ok" : "failed", "\n";
    }
}
?>
以上例程会输出:
Closing 'whisky:13001;X;4948': ok
| 版本 | 说明 | 
|---|---|
| 1.3.0 | 
         在 1.3.0 版本中,为这个函数添加了  | 
| 1.2.0 | 在版本 1.2.0 之前,这个驱动默认不会使用持久连接,所有连接会在作用域结束时关闭。 由于版本 1.2.0 情况不再如此,所以调用 close 会是一个坏主意,在服务器有较高负载时可能会造成更高的压力。 | 
 add a note
 add a note