$jokes = $collection->find();
Run Code Online (Sandbox Code Playgroud)
我如何转换$jokes成数组?
Chr*_*nry 36
您可以使用PHP的iterator_to_array功能,如MongoCursor文档示例1中所示:
$jokes = $collection->find();
$jokesArray = iterator_to_array($jokes);
Run Code Online (Sandbox Code Playgroud)
作为克里斯答案的旁注:
array iterator_to_array(Traversable $ iterator [,bool $ use_keys = true])
注意可选的第二个参数,如果设置为true(默认值),则使用每个文档中的"_id"字段索引最终数组.
如果在mongo查询中应用了排序,则最终数组可能不是您所期望的,这意味着不会保留排序顺序(除非您将$ use_keys参数设置为false)
iterator_to_array不适用于嵌套超过 2 个级别,
使用typeMap您可以将根及其文档转换为数组,它适用于任何级别的嵌套
findOne($filter,$options)
$options = ["typeMap" => ['root' => 'array', 'document' => 'array']];
$collection->findOne(['myId' => $id ], $options); // returns array
Run Code Online (Sandbox Code Playgroud)
查找($过滤器,$选项)
$options = ["typeMap" => ['root' => 'array', 'document' => 'array']];
$collection->find(['myId' => $id ], $options)->toArray();
Run Code Online (Sandbox Code Playgroud)