Php 尝试提取Mongo ID十六进制代码时,无法将MongoId类型的对象用作数组

Php 尝试提取Mongo ID十六进制代码时,无法将MongoId类型的对象用作数组,php,mongodb,objectid,Php,Mongodb,Objectid,我正在尝试使用PHP提取Mongo ID对象的十六进制代码。每当我试图提取ID号并将其存储在另一个变量中时,就会出现此错误 var_转储Mongo查询获取的文档的内容会产生如下结果: object(MongoId)#242 (1) { ["$id"]=> string(24) "52795dc1613f4547710000df" } 为了得到$id字符串,我做了以下操作: $mongo = new MongoClient("mongodb://username:password@loc

我正在尝试使用PHP提取Mongo ID对象的十六进制代码。每当我试图提取ID号并将其存储在另一个变量中时,就会出现此错误

var_转储Mongo查询获取的文档的内容会产生如下结果:

object(MongoId)#242 (1) { ["$id"]=> string(24) "52795dc1613f4547710000df" } 
为了得到$id字符串,我做了以下操作:

$mongo = new MongoClient("mongodb://username:password@localhost/database");
$db = $mongo->selectDb("database");
$collection = $db->selectCollection("someCollection");
$doc = $collection->find( /* some query to get a document here */ )->getNext();

$recordId = $doc["_id"]['$id'];
这会产生以下错误:

PHP Fatal error:  Cannot use object of type MongoId as array
MongoId的
var\u dump()
有点误导。
$doc[“_id”]
保存的是一个对象,而不是一个带有字符串的数组,这是您在最后一行代码中假定的

如果需要MongoId的字符串表示,只需执行以下操作:

$recordId = (string) $doc["_id"];

$recordId = "{$doc['_id']}";