# The MongoDB\BSON\Binary class

(mongodb >=1.0.0)

## Introduction

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.

## Class synopsis

final class MongoDB\BSON\Binary implements MongoDB\BSON\BinaryInterface, MongoDB\BSON\Type, JsonSerializable, Stringable {
/* Constants */
const int TYPE_GENERIC = 0;
const int TYPE_FUNCTION = 1;
const int TYPE_OLD_BINARY = 2;
const int TYPE_OLD_UUID = 3;
const int TYPE_UUID = 4;
const int TYPE_MD5 = 5;
const int TYPE_ENCRYPTED = 6;
const int TYPE_COLUMN = 7;
const int TYPE_SENSITIVE = 8;
const int TYPE_VECTOR = 9;
const int TYPE_USER_DEFINED = 128;
/* Methods */
final public __construct(string `$data`, int `$type` = MongoDB\BSON\Binary::TYPE_GENERIC)
final public static fromVector(array `$vector`, MongoDB\BSON\VectorType `$vectorType`): MongoDB\BSON\Binary
final public getData(): string
final public getType(): int
final public getVectorType(): MongoDB\BSON\VectorType
final public jsonSerialize(): mixed
final public toArray(): array
final public __toString(): string
}

## Predefined 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_VECTOR`

  Vector data. This subtype is used to efficiently store vector data for use with MongoDB's vector search.

`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.

## Changelog

Version | Description
--- | ---
PECL mongodb 2.2.0 | Added `MongoDB\BSON\Binary::TYPE_VECTOR`, as well as the MongoDB\BSON\Binary::fromVector(), MongoDB\BSON\Binary::getVectorType(), and MongoDB\BSON\Binary::toArray() functions.
PECL mongodb 2.0.0 | This class no longer implements the Serializable interface.
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.

## Table of Contents

- MongoDB\BSON\Binary::__construct — Construct a new Binary
- MongoDB\BSON\Binary::fromVector — Creates a new binary with subtype MongoDB\BSON\Binary::SUBTYPE_VECTOR from the given array and vector type
- MongoDB\BSON\Binary::getData — Returns the Binary's data
- MongoDB\BSON\Binary::getType — Returns the Binary's type
- MongoDB\BSON\Binary::getVectorType — Returns the data type for a Binary with the vector subtype
- MongoDB\BSON\Binary::jsonSerialize — Returns a representation that can be converted to JSON
- MongoDB\BSON\Binary::toArray — Returns the vector as an array for a Binary with subtype MongoDB\BSON\Binary::SUBTYPE_VECTOR
- MongoDB\BSON\Binary::__toString — Returns the Binary's data

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open