MongoDB地理空间差异在$ near和$ within之间

时间:2015-02-11 17:47:59

标签: mongodb geospatial

$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); 

任何人都可以详细解释一下吗?

1 个答案:

答案 0 :(得分:10)

主要区别是

  • $near根据距离点的距离进行排序; $geoWithin测试具有GeoJSON坐标的多边形或多边形中的包含,或者用于二维坐标的一组形状中的一个包含
  • $near从最近到最远的文档返回文档,任何其他顺序都需要内存中排序; $geoWithin可与其他排序索引一起使用
  • $near需要地理空间索引; $geoWithin表现更好,但不需要它
  • 分片集群不支持
  • $near - 您必须使用geonear命令或$geoNear聚合阶段

另请查看$near$geoWithin的文档。