如何使用PHP获取MongoID的字符串值?

时间:2011-10-22 17:27:34

标签: mongodb mongodb-php

执行插入后,我想使用json_encode()将对象传递给客户端。问题是,不包括_id值。

$widget = array('text' => 'Some text');

$this->mongo->db->insert($widget);


If I echo $widget['_id'] the string value gets displays on the screen, but I want to do something like this:

$widget['widgetId'] = $widget['_id']->id;


So I can do json_encode() and include the widget id:

echo json_encode($widget);

5 个答案:

答案 0 :(得分:43)

相信这就是你所追求的目标。

$widget['_id']->{'$id'};

像这样。

$widget = array('text' => 'Some text');
$this->mongo->db->insert($widget);
$widget['widgetId'] = $widget['_id']->{'$id'};
echo json_encode($widget);

答案 1 :(得分:21)

您也可以使用:

(string)$widget['_id']

答案 2 :(得分:2)

我使用了类似的东西:

(string)$widget->_id

答案 3 :(得分:2)

正确的方法是使用MongoDB中的ObjectId:

function getMongodbIDString($objectId){
    $objectId = new \MongoDB\BSON\ObjectId($objectId);
    return $objectId->jsonSerialize()['$oid'];
}

并且不要像(string) $row['_id']$row->_id->{'$oid'}那样投射objectId

答案 4 :(得分:1)

我在对象中使用了类似的东西:

$widget->_id->{'$oid'}

(string)$widget->_id

或数组:

$widget['id']->{'$oid'}
(string)$widget['_id']