# The MongoDB\BSON\Binary class

&reftitle.intro;

BSON type for binary data (i.e. array of bytes). Binary values also have a subtype, which is used to indicate what kind of data is in the byte array. Subtypes from zero to 127 are predefined or reserved. Subtypes from 128-255 are user-defined.

&reftitle.classsynopsis;

        MongoDB\BSON\Binary

         final

          MongoDB\BSON\Binary

          MongoDB\BSON\BinaryInterface

          MongoDB\BSON\Type

          Serializable

          JsonSerializable

          Stringable

        &Constants;

         const
         int
         MongoDB\BSON\Binary::TYPE_GENERIC
         0

         const
         int
         MongoDB\BSON\Binary::TYPE_FUNCTION
         1

         const
         int
         MongoDB\BSON\Binary::TYPE_OLD_BINARY
         2

         const
         int
         MongoDB\BSON\Binary::TYPE_OLD_UUID
         3

         const
         int
         MongoDB\BSON\Binary::TYPE_UUID
         4

         const
         int
         MongoDB\BSON\Binary::TYPE_MD5
         5

         const
         int
         MongoDB\BSON\Binary::TYPE_ENCRYPTED
         6

         const
         int
         MongoDB\BSON\Binary::TYPE_COLUMN
         7

         const
         int
         MongoDB\BSON\Binary::TYPE_SENSITIVE
         8

         const
         int
         MongoDB\BSON\Binary::TYPE_USER_DEFINED
         128

        &Methods;

&reftitle.constants;

`MongoDB\BSON\Binary::TYPE_GENERIC`

- Generic binary data.

`MongoDB\BSON\Binary::TYPE_FUNCTION`

- Function.

`MongoDB\BSON\Binary::TYPE_OLD_BINARY`

- Generic binary data (deprecated in favor of `MongoDB\BSON\Binary::TYPE_GENERIC`).

`MongoDB\BSON\Binary::TYPE_OLD_UUID`

- Universally unique identifier (deprecated in favor of `MongoDB\BSON\Binary::TYPE_UUID`). When using this type, the Binary's data should be 16 bytes in length.

  Historically, other drivers encoded values with this type based on their language conventions (e.g. varying endianness), which makes it non-portable. The PHP extension applies no special handling for encoding or decoding data with this type.

`MongoDB\BSON\Binary::TYPE_UUID`

- Universally unique identifier. When using this type, the Binary's data should be 16 bytes in length and encoded according to RFC 4122.

`MongoDB\BSON\Binary::TYPE_MD5`

- MD5 hash. When using this type, the Binary's data should be 16 bytes in length.

`MongoDB\BSON\Binary::TYPE_ENCRYPTED`

- Encrypted value. This subtype is used for client-side encryption.

`MongoDB\BSON\Binary::TYPE_COLUMN`

- Column data. This subtype is used for time-series collections.

`MongoDB\BSON\Binary::TYPE_SENSITIVE`

- Sensitive data. This subtype is used for sensitive data that should be excluded from server-side logging when possible.

`MongoDB\BSON\Binary::TYPE_USER_DEFINED`

- User-defined type. While types between 0 and 127 are predefined or reserved, types between 128 and 255 are user-defined and may be used for anything.

&reftitle.changelog;

&Version; | &Description;
PECL mongodb 1.17.0 | Added `MongoDB\BSON\Binary::TYPE_SENSITIVE`.
PECL mongodb 1.12.0 | Implements Stringable for PHP 8.0+. Added `MongoDB\BSON\Binary::TYPE_COLUMN`.
PECL mongodb 1.7.0 | Added `MongoDB\BSON\Binary::TYPE_ENCRYPTED`.
PECL mongodb 1.3.0 | Implements MongoDB\BSON\BinaryInterface.
PECL mongodb 1.2.0 | Implements Serializable and JsonSerializable.

&reference.mongodb.bson.entities.binary;