【问题标题】:What is the difference between "queries" and "commands" in MongoDbMongoDb中的“查询”和“命令”有什么区别
【发布时间】:2016-09-07 22:06:12
【问题描述】:

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

我不明白命令和操作员/查询之间的区别?这些命令似乎与它们的查询对应物完全相同?

PS:我在我的应用程序中使用 scala reactivemongo 连接器。

【问题讨论】:

    标签: mongodb geolocation


    【解决方案1】:

    我记得是从mongodb definitive guide 2nd edition (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,
           ...
        } )
    

    查询命令查询数据库示例

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

    【讨论】:

    • 谢谢 vdj4y 所以这只是语法差异?为什么要在 MongoDb 的一组受限查询中使用两种不同的语法?是否存在性能差异?是否只有在集成到查询语言中之前首先作为命令引入的新功能?
    猜你喜欢
    • 1970-01-01
    • 2023-01-26
    • 2017-04-19
    • 2011-01-14
    • 1970-01-01
    • 2019-08-29
    • 2011-11-23
    • 1970-01-01
    • 2021-10-02
    相关资源
    最近更新 更多