首页 > 解决方案 > 如何在 MongoDB/PHP 中以最佳方式进行分组

问题描述

我对 MongoDB 有一个优化问题。在 Mongo,我在不同时间收集了汽车 GPS 位置的数据。我只想显示每辆车的最新位置。如何优化这段代码?此代码有效,但对于许多汽车来说速度很慢。我从另一个系统的其他 PostgreSQL 数据库接收 id_cars。

代码在这里:

<?php
        $resultDB=mysqli_query($link, "SELECT id_cars FROM cars");
        while ($row=mysqli_fetch_assoc($resultDB)){
            $filter=['carID' => intval($row["id_cars"])];
            $options=[
                'limit'=>1,
                'sort'=>[
                    'time'=>-1
                ],
                'projection'=>['carID' =>1, 'carID'=>1, 'lat'=>1, 'lon'=>1]
            ];
            
            $query=new MongoDB\Driver\Query($filter, $options);
            if ($cursor =$manager->executeQuery("$dbMongoDbName.ship_data", $query)){
                 $iterator = new IteratorIterator($cursor);
                $iterator->rewind();
                if ($iterator->valid()) {
                    $document = $iterator->current();
                    $result=json_decode(json_encode($document), true);
                    
                    echo $result['carID'].": ".$result['lat']." - ".$result['lon'];
                }
            }
        }
?>

标签: phpmongodbgroup-by

解决方案


推荐阅读