使用php mongodb驱动程序“命令”函数,而不是将集合作为数组获取,我将一个集合作为一个对象,每个项目都是一个私有的ArrayObject。
$stores = $mongodb->command([
'geoNear' => 'stores',
'near' => [
'type' => 'Point',
'coordinates' => [
$lng,
$lat
],
],
'spherical' => true,
'maxDistance' => 30000,
]);
这:
$results = $stores->toArray()[0]->results;
foreach($results as $result) {
var_dump($result);
}
返回:
object(MongoDB\Model\BSONDocument)[17]
private 'storage' (ArrayObject) =>
array (size=2)
'dis' => float 13002.060182992
'obj' =>
object(MongoDB\Model\BSONDocument)[16]
private 'storage' (ArrayObject) =>
array (size=4)
...
我想将一个集合作为公共数组返回,这样我就可以在数组上array_map
,并使用'dis'和'obj'属性。