gpt4 book ai didi

php - 将 PHP mongodb findOne 结果转换为旧的关联数组?

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

我在使用 php 的新 mongodb 驱动程序时遇到问题。虽然 iterator_to_array 可以正常用于 ->find,但如果我只返回一个文档,它具有 MongoDB\Model\BSONDocument 格式。

$result = $db->clients->findOne(array('_id' => $id));
$result = (array) $result;

在 Mongo 中,文档看起来像这样:

{ 
"_id" : ObjectId("3894713i4b13iu412"),
"active" : true,
"logo" : "this is logo",
"settings" : {
"email" : "days",
"testMode" : false
},
"stats" : {
"f" : {
"all" : [
{
"count" : NumberLong(15846),
"sum" : NumberLong(149479)
},
{
"count" : NumberLong(15846),
"sum" : NumberLong(148891)
},
{
"count" : NumberLong(15846),
"sum" : {
"1" : NumberLong(15522),
"2" : NumberLong(324)
}
}
]
},
"l" : {
"order" : ISODate("2016-12-05T09:10:53.855+0000"),
"feedback" : ISODate("2016-12-05T08:34:48.403+0000")
}
},
"title" : "hhh.ro",
"url" : "sdfasdf"
}

这只会将第一级元素变成数组,但嵌套文档元素仍然保留 MongoDB\Model\BSONDocument;

iterator_to_array 不起作用,因为这不是可迭代的东西。

如何将整个文档转换为关联数组,如旧的 mongo 驱动程序或 stdClass?

最佳答案

可以在database->setCollection选项中设置全局返回数据的方式,设置typeMap为array

'typeMap' =>[
'document' => 'array',
'root' => 'array'
]

Link to Doc

关于php - 将 PHP mongodb findOne 结果转换为旧的关联数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40970693/

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