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返回两个数据

转载于:https://www.cnblogs.com/wzndkj/p/9452776.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值