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

Sye*_*her 4 geospatial 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); 
Run Code Online (Sandbox Code Playgroud)

谁能详细解释一下?

wdb*_*ley 11

主要区别是

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

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