本文介绍了$ ear和$ within之间的MongoDB地理空间差异的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
$near
和$within
有什么区别?
db.geodata.find({ "loc" : { "$within" : { "$center" : [ [ 12.91365 , 77.59395] , 4]}}}).limit(10);
db.geodata.find({ "loc" : { "$near" : [ 12.91365 , 77.59395] , "$maxDistance" : 4}}).limit(10);
任何人都可以详细解释吗?
Can anyone explain in detail?
推荐答案
主要区别是
-
$near
根据距点的距离进行排序;$geoWithin
测试包含GeoJSON坐标的多边形或多面中的包含度,或包含2d坐标的一组形状中的包含度 -
$near
从最近到最远返回文档,其他任何顺序都需要在内存中排序;$geoWithin
可以与其他排序索引一起使用 -
$near
需要地理空间索引;$geoWithin
表现更好,但不需要它 分片群集不支持 -
$near
-您必须使用geonear
命令或$geoNear
聚合阶段
$near
sorts based on distance from a point;$geoWithin
tests for containment in a polygon or multipolygon with GeoJSON coordinates, or containment in one of a set of shapes for 2d coordinates$near
returns document from nearest to farthest and any other order requires in-memory sorting;$geoWithin
can be used with other sort indexes$near
requires a geospatial index;$geoWithin
performs better with one but does not require it$near
is not supported in sharded clusters - you have to use thegeonear
command or$geoNear
aggregation stage instead
还要查看 $ near 和 $ geoWithin .
这篇关于$ ear和$ within之间的MongoDB地理空间差异的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!