A. *_*uff 2 php mongodb objectid
我正在尝试使用PHP提取Mongo ID ObjectId的十六进制代码.每当我尝试提取ID号并将其存储在另一个变量中时,就会出现此错误.
var_dumping由Mongo查询提取的文档的内容给出如下内容:
object(MongoId)#242 (1) { ["$id"]=> string(24) "52795dc1613f4547710000df" }
Run Code Online (Sandbox Code Playgroud)
所以要获得$ 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'];
Run Code Online (Sandbox Code Playgroud)
这会产生以下错误:
PHP Fatal error: Cannot use object of type MongoId as array
Run Code Online (Sandbox Code Playgroud)
lut*_*ens 11
在var_dump()一个MongoId的有点missleading.将$doc["_id"]持有的对象,而不是一个数组与字符串,你在你的代码最后一行承担.
如果你想要一个MongoId的字符串表示只是这样做:
$recordId = (string) $doc["_id"];
Run Code Online (Sandbox Code Playgroud)
要么
$recordId = "{$doc['_id']}";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5755 次 |
| 最近记录: |