我正在閱讀那個tutorial以瞭解如何獲取位於Google地圖多邊形抽屜中給定的多邊形內的文檔。MongoDB在多邊形中搜索所有具有lat和lng的文檔
該教程它存儲在像數組中的位置:
pos:{lat:xxx,lng:yyy}
那不是我的情況,因爲我的文檔值存儲,如:
{...
"hotel_lat":"xxx",
"hotel_lng":"yyy",
...
},
{...
"hotel_lat":"xxx",
"hotel_lng":"yyy",
...
},
{...
"hotel_lat":"xxx",
"hotel_lng":"yyy",
...
},
...
所以在教程它使用該查詢來查找多邊形中的所有文檔:
$query = array("pos" => array(
'$within' => array('$polygon' => $poly)));
$cursor = $collection->find($query);
我將其更改爲:
$query = array(
array("hotel_lat","hotel_lng") => array(
'$within' => array('$polygon' => $poly)))
,但它給了我這個錯誤:Illegal offset type in.....
可能是什麼錯誤?
謝謝!
非常感謝您的迴應!我將我的字段轉換爲匹配mongoDB索引,並且所有工作都很好。再次感謝你! – JackTurky