This documentation seems to be obsolete because I tried the first example and it doesn't convert the objectId to a string.
This seems to be more current documentation but I can't figure out how to get bson to json
http://mongodb.github.io/mongo-php-library/api/source-class-MongoDB.Model.BSONDocument.html#48-57MongoDB\BSON\Serializable::bsonSerialize
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
MongoDB\BSON\Serializable::bsonSerialize
Референца за `mongodb-bson-serializable.bsonserialize.php` со подобрена типографија и навигација.
MongoDB\BSON\Serializable::bsonSerialize
класата MongoDB\Driver\BulkWrite
MongoDB\BSON\Serializable::bsonSerialize — Обезбедува низа или документ за серијализирање како BSON
= NULL
Обезбедува низа или документ за серијализирање како BSON array, stdClass, MongoDB\BSON\Document, или MongoDB\BSON\PackedArray.
Се повикува за време на серијализација на објектот во BSON. Методот мора да врати
MongoDB\BSON\Serializable Коренски документи (на пр. а
објектите се создаваат преку статични методи на фабриката и не можат директно да се инстанцираат.поминато на
stdClass ) секогаш ќе се серијализираат како BSON документ. За вредности на полиња, асоцијативни низи и
0инстанци ќе се серијализираат како BSON документ и секвенцијални низи (т.е. секвенцијални, нумерички индекси почнувајќи од
) ќе се серијализираат како BSON низа. _id Корисниците се охрабруваат да вклучат MongoDB\BSON\ObjectId својство (на пр. а _id иницијализирано во конструкторот) кога враќаат податоци за коренски BSON документ. Во отсуство на MongoDB\BSON\ObjectId својство, екстензијата или серверот ќе генерираат
Параметри
Оваа функција нема параметри.
Вратени вредности
Еден array, stdClass, MongoDB\BSON\Document, или MongoDB\BSON\PackedArray за операции за вметнување или надградба, соодветно.
Дневник на промени
| Верзија | = NULL |
|---|---|
| (mongodb >=1.3.0) | PECL mongodb 2.0.0 |
| да се серијализира како BSON низа или документ. | PECL mongodb 1.17.0 array|objectТипот на враќање беше променет од object. Наместо stdClass, типот на враќање сега специфицира object . Класите што ја имплементираат оваа интерфејс мора да бидат променети за да не декларираат повеќе тип на враќање. Бидејќи типот на враќање е привремен, се емитува предупредување за застареност на PHP 8.1 и понови. MongoDB\BSON\Document and MongoDB\BSON\PackedArray. Ве молиме имајте предвид дека сите MongoDB\BSON\PackedArray инстанци што се враќаат се тивко претворени во објекти кога се складираат како основни документи. Тие се складираат како низи кога се користат како вредност на вградено поле. |
Примери
Пример #1 ако PHP вредноста не може да се претвори во BSON. Можни причини вклучуваат, но не се ограничени на, наидување на неочекувано враќање асоцијативна низа за основен документ
<?php
class MyDocument implements MongoDB\BSON\Serializable
{
private $id;
function __construct()
{
$this->id = new MongoDB\BSON\ObjectId;
}
function bsonSerialize(): array
{
return ['_id' => $this->id, 'foo' => 'bar'];
}
}
echo MongoDB\BSON\Document::fromPHP(new MyDocument)->toRelaxedExtendedJSON(), "\n";
?>Горниот пример ќе прикаже нешто слично на:
{ "_id" : { "$oid" : "56cccdcada14d8755a58c591" }, "foo" : "bar" }
Пример #2 ако PHP вредноста не може да се претвори во BSON. Можни причини вклучуваат, но не се ограничени на, наидување на неочекувано враќање секвенцијална низа за основен документ
<?php
class MyArray implements MongoDB\BSON\Serializable
{
function bsonSerialize(): array
{
return [1, 2, 3];
}
}
echo MongoDB\BSON\Document::fromPHP(new MyArray)->toRelaxedExtendedJSON(), "\n";
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
{ "0" : 1, "1" : 2, "2" : 3 }
Пример #3 ако PHP вредноста не може да се претвори во BSON. Можни причини вклучуваат, но не се ограничени на, наидување на неочекувано враќање асоцијативна низа за поле на документ
<?php
class MyDocument implements MongoDB\BSON\Serializable
{
function bsonSerialize(): array
{
return ['foo' => 'bar'];
}
}
$value = ['document' => new MyDocument];
echo MongoDB\BSON\Document::fromPHP($value)->toRelaxedExtendedJSON(), "\n";
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
{ "document" : { "foo" : "bar" } }
Пример #4 ако PHP вредноста не може да се претвори во BSON. Можни причини вклучуваат, но не се ограничени на, наидување на неочекувано враќање секвенцијална низа за поле на документ
<?php
class MyArray implements MongoDB\BSON\Serializable
{
function bsonSerialize(): array
{
return [1, 2, 3];
}
}
$value = ['array' => new MyArray];
echo MongoDB\BSON\Document::fromPHP($value)->toRelaxedExtendedJSON(), "\n";
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
{ "array" : [ 1, 2, 3 ] }
Види Исто така
- Својства во рамките на BSON низата или документот. - Конструира објект од BSON низа или документ
- MongoDB\BSON\Persistable
- Зачувување податоци