Hello MongoDB文档指定有多种方法可以检索地理位置附近的文档:
使用“查询”(例如在查询查询中): https://docs.mongodb.com/v3.0/reference/operator/query-geospatial/
或使用“命令”: https://docs.mongodb.com/manual/reference/command/nav-geospatial/
我不明白命令和操作符/查询之间的区别?这些命令似乎与查询对应命令完全相同?
PS:我在我的应用程序中使用scala reactivemongo连接器。
答案 0 :(得分:1)
我记得从mongodb definitive guide 2nd edition (mongo 2.6)读取它,但本书仅涵盖了mongo2.6。
查询命令涵盖了CRUD,drop database等几个任务。虽然数据库命令涵盖了其他所有内容,包括管理任务,克隆数据库等。(本书使用mongodb v2.6,我相信mongodbV3.2 queryCommand有更多功能可以覆盖一些管理任务)
查询返回了一个游标,而database命令返回了一个始终具有“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
}
}
}
)