gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 09:56:34 26 4
gpt4 key购买 nike

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

var_dumping 由 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_dump() 有点误导。 $doc["_id"] 包含一个对象,而不是一个带有字符串数组,您假设在你的最后一行代码中。

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

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

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

关于php - 尝试提取 Mongo ID 十六进制代码时无法将 MongoId 类型的对象用作数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21052611/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com