へのMongoDB BSONを変換するために、どのように私はあなたたちはこれで私を助けることを願って:が正しくPHPオブジェクト
まず物事を最初に - 私は、次のバージョン/ライブラリを使用しています:
- PHP:PHP 7.0を。 3-1〜dotdeb + 8.1
- のMongoDBバージョン=> 1.1.2
- モンゴPHPLibrary(https://github.com/mongodb/mongo-php-library/)
私がしようとしているトンo BSON配列を変換して、私のプロジェクトで作業するためにデータベースから抜け出す。
私はMongoDBの大きな機会の1つが、1つのコレクションに異なる編成されたデータを持つことを理解していました。この例では と同様に(1つのオブジェクトのみが "説明" タグを持っています
JSONドキュメント:
{
enumbers ":[ {
"id": "84",
"enumber": "E 472 b",
"name": "Milchs\u00e4ureester von Mono- und Diglyceriden von Speisefetts\u00e4uren"
}, {
"id": "198",
"enumber": "E 407",
"name": "Carrageen",
"description": "Testdescription",
}, {
"id": "293",
"enumber": "E 941",
"name": "Stickstoff"
}]
}
私は次のコードでデータベースにアクセスしています:
$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$collection = new MongoDB\Collection($manager, "test", "items");
$document = $collection->findOne(["id" => '5']);
$product= new Product($document);
作品罰金をここまで。
use MongoDB\Model\BSONArray;
use MongoDB\Model\BSONDocument;
class Product
public function __construct(BSONDocument $data)
{
foreach ($data as $part){
try{
$this->setId($part->id);
$this->setEnumber($part->id);
$this->setName($part->name);
--------------------------------------
$this->setDescription($part->description);
--------------------------------------
}catch (\Exception $e){
echo $e;
}
}
echo "-------------------------------------------------".PHP_EOL;
}
"$ this-> setDescription($ part-> description); "例外"をスローする:
ここで、 "description"タグは定義されていません。
実際、私はそれが存在しない場合はnullを返すことを望んでいました。
データセットの一部にこのタグが付いているかどうかわかりますか?
は、あなたが私に私が私が私の機能で「深すぎる」一つの層にアクセスしようとしたことが分かった:)