Returns an object for BSON serialization

# MongoDB\Driver\ReadPreference::bsonSerialize

(mongodb >=1.2.0)

MongoDB\Driver\ReadPreference::bsonSerialize — Returns an object for BSON serialization

### 説明

final public MongoDB\Driver\ReadPreference::bsonSerialize ( void ) : object

### パラメータ

この関数にはパラメータはありません。

### 返り値

Returns an object for serializing the ReadPreference as BSON.

### エラー / 例外

- 引数のパースに失敗した場合に MongoDB\Driver\Exception\InvalidArgumentException をスローします。

### 例

例1 MongoDB\Driver\ReadPreference::bsonSerialize() with primary read preference

`<?php
$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY);
var_dump($rp->bsonSerialize());
echo "\n", MongoDB\BSON\toJSON(MongoDB\BSON\fromPHP($rp));
?>`

上の例の出力は、 たとえば以下のようになります。

    object(stdClass)#2 (1) {
      ["mode"]=>
      string(7) "primary"
    }

    { "mode" : "primary" }

例2 MongoDB\Driver\ReadPreference::bsonSerialize() with secondary read preference and tag sets

`<?php
$rp = new MongoDB\Driver\ReadPreference(
MongoDB\Driver\ReadPreference::RP_SECONDARY,
[
['dc' => 'ny'],
['dc' => 'sf', 'use' => 'reporting'],
[]
]
);
var_dump($rp->bsonSerialize());
echo "\n", MongoDB\BSON\toJSON(MongoDB\BSON\fromPHP($rp));
?>`

上の例の出力は、 たとえば以下のようになります。

    object(stdClass)#2 (2) {
      ["mode"]=>
      string(9) "secondary"
      ["tags"]=>
      array(3) {
        [0]=>
        object(stdClass)#1 (1) {
          ["dc"]=>
          string(2) "ny"
        }
        [1]=>
        object(stdClass)#5 (2) {
          ["dc"]=>
          string(2) "sf"
          ["use"]=>
          string(9) "reporting"
        }
        [2]=>
        object(stdClass)#4 (0) {
        }
      }
    }

    { "mode" : "secondary", "tags" : [ { "dc" : "ny" }, { "dc" : "sf", "use" : "reporting" }, {  } ] }

例3 MongoDB\Driver\ReadPreference::bsonSerialize() with secondary read preference and max staleness

`<?php
$rp = new MongoDB\Driver\ReadPreference(
MongoDB\Driver\ReadPreference::RP_SECONDARY,
null,
['maxStalenessSeconds' => 120]
);
var_dump($rp->bsonSerialize());
echo "\n", MongoDB\BSON\toJSON(MongoDB\BSON\fromPHP($rp));
?>`

上の例の出力は、 たとえば以下のようになります。

    object(stdClass)#2 (2) {
      ["mode"]=>
      string(9) "secondary"
      ["maxStalenessSeconds"]=>
      int(120)
    }

    { "mode" : "secondary", "maxStalenessSeconds" : 120 }

### 参考

- MongoDB\BSON\Serializable::bsonSerialize() - Provides an array or document to serialize as BSON
- » Read Preference reference