PHP和MongoDB-如何作为公共数组集合获取结果?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (130)

使用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’属性。

提问于
用户回答回答于

尝试json_encode。否则,你必须去检查类的声明,并找到一种方法来检索所需的属性。

扫码关注云+社区

领取腾讯云代金券