MongoClient::close

(PECL mongo >=1.3.0)

MongoClient::closeCloses this connection

Description

public MongoClient::close(bool|string $connection = ?): bool

The MongoClient::close() method forcefully closes a connection to the database, even if persistent connections are being used. You should never have to do this under normal circumstances.

Parameters

connection

If connection is not given, or false then connection that would be selected for writes would be closed. In a single-node configuration, that is then the whole connection, but if you are connected to a replica set, close() will only close the connection to the primary server.

If connection is true then all connections as known by the connection manager will be closed. This can include connections that are not referenced in the connection string used to create the object that you are calling close on.

If connection is a string argument, then it will only close the connection identified by this hash. Hashes are identifiers for a connection and can be obtained by calling MongoClient::getConnections().

Return Values

Returns if the connection was successfully closed.

Examples

Example #1 MongoClient::close() example

This example demonstrates how to selectively close all connections for secondaries only.

<?php
// Connect to a replicaset
$a = new MongoClient("mongodb://whisky:13000/?replicaset=seta");

$connections $a->getConnections();

foreach ( 
$connections as $con )
{
    
// Loop over all the connections, and when the type is "SECONDARY"
    // we close the connection
    
if ( $con['connection']['connection_type_desc'] == "SECONDARY" )
    {
        echo 
"Closing '{$con['hash']}': ";
        
$closed $a->close$con['hash'] );
        echo 
$closed "ok" "failed""\n";
    }
}
?>

The above example will output:

Closing 'whisky:13001;X;4948': ok

Changelog

Version Description
PECL mongo 1.3.0

The connection parameter to this function was added in 1.3.0. Before that, only the write connection would be closed by this method.

PECL mongo 1.2.0

Before version 1.2.0 the driver would not use persistent connections by default, and all connections would be closed as soon as a MongoDB connection went out if scope. Since version 1.2.0 this is no longer the case and it is a bad idea to call close as you might end up overloading the server with connections under high load.

See Also