как использовать $ geointersects с Php mongodb

У меня есть коллекция в Mongodb, как это

`{"_id" : ObjectId("54df0a912e2b8df82d15e2dc"),"shopDeliveryArea" : {
"type" : "Polygon",
"coordinates" : [
[
[
12.960308,
77.642759
],
[
12.958495,
77.643177
],
[
12.957933,
77.644299
],
[
12.955367,
77.647154
],
[
12.953395,
77.648083
],
[
12.952329,
77.649925
],
[
12.953475,
77.65048
],
[
12.953639,
77.651405
],
[
12.954735,
77.651804
],
[
12.955287,
77.650502
],
[
12.956573,
77.65089
],
[
12.956084,
77.653259
],
[
12.959188,
77.654081
],
[
12.959444,
77.649814
],
[
12.960308,
77.642759
]
]
]
}}`

Я хочу проверить, находится ли точка в этом многоугольнике, и я использовал следующий запрос

  `db.collection.find({shopDeliveryArea:{$geoIntersects: {$geometry: {"type": "Point","coordinates": [12.953463, 77.650069]}}}}).pretty()`

Это возвращает данные. То же самое, когда я пытаюсь использовать php, он не возвращает никаких значений 🙁

Вот мой код

      `$condition=array(
'shopDeliveryArea'=>array(
'$geoIntersects' =>  array(
'$geometry' => array(
'type' => 'Point',
'coordinates' => array(
(double)$currentLatitude,
(double)$currentLongitude
)
)
)
),
'shopCategory' => (int) $orderCategory,
'isApproved'=>'TRUE'
);
$fetch=array(
);

$results = $collection->findone($condition,$fetch);`

Но этот код не возвращает никаких результатов. Нужна помощь

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]