Overview
In this guide, you can learn how to configure network compression for your connection to MongoDB.
Network compression is a feature that allows you to compress and decompress messages sent between your application and MongoDB, reducing the total amount of data passed over the network.
The PHP library supports the following compressors:
Note
Compressor Selection
If you specify multiple compressors to use on your connection, the driver selects the first one that is supported by the MongoDB deployment that the PHP library is connected to.
Enable Network Compression
To enable compression for the connection to your MongoDB deployment, use the
compressors connection option and specify the compression algorithms you want to use.
You can do this in two ways:
Pass the algorithms as an argument to the
MongoDB\Clientconstructor.Specify the algorithms in your connection string.
The following example shows how to specify Snappy, Zlib, and Zstandard as the compressors for a connection. Select the MongoDB\Client or Connection URI tab to see the corresponding code:
$client = new MongoDB\Client( 'mongodb://<hostname>:<port>', ['compressors' => 'snappy,zstd,zlib'], );
$uri = 'mongodb://<hostname>:<port>/?compressors=snappy,zstd,zlib'; $client = new MongoDB\Client($uri);
Specify the zlib Compression Level
If you specify zlib as one of your compression algorithms, you can also use the
zlibCompressionLevel option to specify a compression level. This option accepts
an integer value between -1 and 9:
-1: (Default). zlib uses its default compression level (usually
6).0: No compression.
1: Fastest speed but lowest compression.
9: Best compression but slowest speed.
The following example specifies the zlib compression algorithm and a
zlibCompressionLevel value of 1. Select the MongoDB\Client
or Connection URI tab to see the corresponding code:
$uriOptions = [ 'compressors' => 'zlib', 'zlibCompressionLevel' => 1, ]; $client = new MongoDB\Client( 'mongodb://<hostname>:<port>', $uriOptions, );
$uri = 'mongodb://<hostname>:<port>/?compressors=zlib&zlibCompressionLevel=1'; $client = new MongoDB\Client($uri);
API Documentation
To learn more about the MongoDB\Client class, see MongoDB\Client
in the library API documentation.
To view a full list of URI options that you can pass to a MongoDB\Client, see the
MongoDB\Driver\Manager::__construct parameters
in the extension API documentation.