zoukankan      html  css  js  c++  java
  • geoNear查询 near查询的升级版

    geoNear查询可以看作是near查询点进化版
    geoNear查询使用runCommand命令进行使用,常用使用如下:
    db.runCommand({
      geoNear:<collection>,
      near:[x,y],
      minDistance:(对2d索引无效,对2dsphere有效),
      maxDistance:
      num:
      ...
    })
    geoNear的返回比near多了一些数据
    > db.runCommand({geoNear:'location',near:[1,2],maxDistance:10,num:1})
    {
        "results" : [
            {
                "dis" : 0,
                "obj" : {
                    "_id" : ObjectId("5b6b6fa872ff7510af7fc784"),
                    "w" : [
                        1,
                        2
                    ]
                }
            }
        ],
        "stats" : {
            "nscanned" : 3,
            "objectsLoaded" : 1,
            "avgDistance" : 0,
            "maxDistance" : 0,
            "time" : 3396
        },
        "ok" : 1
    }
    有3个,第一个是results,表明查询到的数据,第二个是stats,指的是查询的一些参数,第三个ok为1代表查询成功。
    其中stats,nscanned表明扫码了哪些数据,time是花费的时间,maxDistance最大的距离,avgDistance平均距离,
    results中,dis是distance的缩写,代表查找到的数据的距离,离我们<1,2>的距离。obj是查找到的文档,如果将num限制为2,
    db.runCommand({geoNear:'location',near:[1,2],maxDistance:10,num:2})
    {
        "results" : [
            {
                "dis" : 0,
                "obj" : {
                    "_id" : ObjectId("5b6b6fa872ff7510af7fc784"),
                    "w" : [
                        1,
                        2
                    ]
                }
            },
            {
                "dis" : 1,
                "obj" : {
                    "_id" : ObjectId("5b6b6fa572ff7510af7fc783"),
                    "w" : [
                        1,
                        1
                    ]
                }
            }
        ],
        "stats" : {
            "nscanned" : 32,
            "objectsLoaded" : 2,
            "avgDistance" : 0.5,
            "maxDistance" : 1,
            "time" : 3340
        },
        "ok" : 1
    }
    obj返回两个数据
  • 相关阅读:
    Sublime Text 试玩日记
    Makefile 学习
    小书匠使用手册
    较完整的解决Linux zip 压缩包中文我乱码问题
    彻底解决Android模拟器中文短信乱码问题
    博客变更
    关于如何学习一个框架的经验总结
    [JavaScript] this、call和apply详解
    类与类之间关系,用C#和JavaScript体现
    [Node.js] require背后的故事
  • 原文地址:https://www.cnblogs.com/wzndkj/p/9452776.html
Copyright © 2011-2022 走看看