mongoid_print.php
<?php
echo (new MongoId());
結果
"5170b4f67b2a7d0c1f000000 "
通常、echo(print)する際は自動的に__toString()が実行されるので、
IDの16進表現で表示される。
だが、
mongoid_json_encode.php
<?php
echo json_encode(new MongoId());
結果
{"$id":"5170b4f67b2a7d0c1f000000"}
json_encodeにそのままMongoIdオブジェクトを渡すと上記のような配列を
文字列化してしまうようである。
mongoid_json_encode.php
<?php
$mongoId = new \MongoId();
echo json_encode($mongoId->__toString());
結果
"5170b76d7b2a7de818000000"
明示的に__toString()すれば回避できる。