MongoDb 中的“查询”和“命令”有什么区别

Ant*_*nin 5 geolocation mongodb

Hello MongoDB 文档指定有几种方法可以检索地理位置附近的文档:

我不明白命令和运算符/查询之间的区别?这些命令似乎与它们的查询对应物做完全相同的事情?

PS:我在我的应用程序中使用了 Scala 反应式蒙戈连接器。

vdj*_*j4y 2

我记得是从《mongodb权威指南第二版(mongo 2.6)》上读到的,但这本书只涵盖了mongo2.6。

  1. 查询命令涵盖多项任务,例如 CRUD、删除数据库。而database Command涵盖了其他所有内容,包括管理任务、克隆数据库等(本书使用mongodb v2.6,我确信在mongodbV3.2中queryCommand具有更多功能,可以涵盖一些管理任务)

  2. mongoshell 中的查询返回一个游标,而数据库命令返回一个始终具有“ok”状态的文档以及一个或多个信息。


使用数据库命令查询地理位置的示例

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

使用查询命令查询数据库的示例

db.places.find(
   {
     location:
       { $near :
          {
            $geometry: { type: "Point",  coordinates: [ -73.9667, 40.78 ] },
            $minDistance: 1000,
            $maxDistance: 5000
          }
       }
   }
)
Run Code Online (Sandbox Code Playgroud)