我正在使用MongoDB,PHP驅動程序和Google Maps。由於Google Maps對Longitude進行了繞圈(在某些情況下,LEFT經度可能會大於RIGHT經度),因此我試圖獲得相當於MySQL的而不是在MongoDB中的工作。MongoDB等價於「NOT BETWEEN」
有沒有人成功地使用了MongoDB的「$或」操作符來模擬NOT BETWEEN?
這裏是我的(失敗)的嘗試至今:
// If the LEFT longitude is greater
if ($longitude_left > $longitude_right) {
$params = array(
'$or' => array(
'longitude' => array('$gte' => $longitude_left, '$lte' => $longitude_right)
)
);
}
// By default, the RIGHT longitude is greater
else {
$params = array(
'longitude' => array(
'$gte' => $longitude_left, '$lte' => $longitude_right
)
);
}
$mongo = new Mongo();
$cursor = $mongo->energy->plants->find($params);