2016-09-07 3 views
1

Здравствуйте MongoDB документации указывает, что существует несколько способов получения документов рядом с географическим положением:В чем разница между «запросами» и «команды» в MongoDb

Я не понимаю разницы между командами и оператором/запросами? Кажется, что эти команды делают то же самое, что и их аналоги?

PS: В моем приложении используется разъем scala reactivemongo.

ответ

1

Я помню, как читал его с mongodb definitive guide 2nd edition (mongo 2.6), однако эта книга охватывает только mongo2.6.

  1. команда запроса охватывает несколько задач, таких как CRUD, drop database. В то время как команда базы данных охватывают все остальное, в том числе административные задачи, клонирования базы данных и т.д. (эта книга использует MongoDB v2.6, я уверен, что в mongodbV3.2 queryCommand имеет больше функций, которые могут охватывать несколько adminitrative задач)

  2. запрос в mongoshell возвратил курсор, тогда как команда базы данных вернула документ, который всегда имеет статус «ok» и одну или несколько информации.


Пример запрос геолокации с командованием базы данных

db.runCommand({ 
     geoNear: <collection> , 
     near: { type: "Point" , coordinates: [ <coordinates> ] } , 
     spherical: true, 
     ... 
    }) 

Пример запроса базы данных с помощью команды запроса

db.places.find(
    { 
    location: 
     { $near : 
      { 
      $geometry: { type: "Point", coordinates: [ -73.9667, 40.78 ] }, 
      $minDistance: 1000, 
      $maxDistance: 5000 
      } 
     } 
    } 
) 
+0

Спасибо вам vdj4y так это просто syntaxe РАЗНИЦА? Зачем беспокоиться о наличии двух разных синтаксисов в ограниченном наборе запросов в MongoDb? Есть ли разница в производительности? Являются ли новые функции впервые введенными в качестве команд до того, как они будут интегрированы в язык запросов? – Antonin

Смежные вопросы