こんにちは、mongodb のポリゴン内でカウントする方法を以下に示します。
public function countWithinPolygon($polygon, $tags = array())
{
// var_dump($polygon);
// var_dump($polygon->getPoints());exit();
$query = array(
'point' => array(
'$within' => array(
'$polygon' => $polygon->getPoints()->first()->toArray(true)
)
)
);
if($tags)
{
$query['tags'] = array(
'$all' => $tags
);
}
return parent::count($query);
}
少量のデータを含む一部のクエリでは、問題ありません。4000 回以上の呼び出しを含む大規模なデータセットでは、実行時間は本当に悲惨で、数時間かかることもあります。実行には平均で 3 時間かかります。これを記述して時間を節約し、このクエリを最適化するためのより良い方法に関するアイデアやヒントはありますか?