Mongo DB Geo рядом не работает в Laravel

1

Я использую Laravel 5 с базой данных mongo Db. Я использовал пакет jenssegers/laravel-mongodb для всех связанных с mongo функций. Все работает нормально.

Но когда я попытался geonear в соответствии с информацией, поставьте ссылку на эту ссылку ([Geo near query link] [1]) mongodb. Я отлично работаю. Я использовал следующий запрос, чтобы получить расстояние между всеми записями моей коллекции.

Команда: -

({ geoNear: "sale_event",
   near: { 
      type: "Point", 
      coordinates: [ 76.7171945,30.7291196 ] 
      }, 
   spherical: true, 
})

этот запрос отлично работает в командной строке и дает мне дистанцию с результатом: -

{
 "results" : [
  {
   "dis" : 0,
   "obj" : {
    "_id" : ObjectId("568e01fc04896fcd208b4575"),
    "seller_rating" : "4.5",
    "latLong" : [
     76.7171945,
     30.7291196
    ],
    "description" : "Where'd",
    "updated_at" : ISODate("2016-01-07T06:13:16.152Z"),
    "created_at" : ISODate("2016-01-07T06:13:16.150Z")
   }
  },
  {
   "dis" : 244708.75191385587,
   "obj" : {
    "_id" : ObjectId("568e01eb04896fcd208b4574"),
    "seller_rating" : "4.5",
    "latLong" : [
     77.0999578,
     28.5561624
    ],
    "description" : "Where'd",
    "updated_at" : ISODate("2016-01-07T06:12:59.263Z"),
    "created_at" : ISODate("2016-01-07T06:12:59.261Z")
   }
  }
 ],
 "stats" : {
  "nscanned" : 20,
  "objectsLoaded" : 2,
  "avgDistance" : 122354.37595692794,
  "maxDistance" : 244708.75191385587,
  "time" : 3
 },
 "ok" : 1
}

Но когда я использовал ту же команду в laravel, это не дало мне такого же результата:

Я добавил следующий метод для запуска той же команды.

$r = DB::command(array( 'geoNear' => "sale_events",
  'near' => array( 'type' => "Point", 'coordinates' => array('76.7171945','30.7291196')), 'spherical' => true ));

Это дает мне следующий результат:

Array
(
    [ok] => 0
    [errmsg] => can't find ns
)

Пожалуйста, помогите мне, как я могу получить расстояние в laravel в соответствии с широтой и долготой с mongodb в laravel.

Теги:
mongodb-query
laravel-5
latitude-longitude

1 ответ

0

Возможно, вы захотите создать новый экземпляр базы данных. Этот запрос очень хорошо работает на Laravel 5:

$mongodb = \DB::getMongoDB();

    $lat = 3.1416;
    $lng = -99.99999;

    $near = $mongodb->command(array( 
        'geoNear' => "sale_events", 
        'near' => array( 
            'type' => "Point", 
            'coordinates' => array(
                $lng,
                $lat
                )
            ), 
        'spherical' => true, 
        'maxDistance' => 2500 ));

Ещё вопросы

Сообщество Overcoder
Наверх
Меню