草庐IT

geoWithin

全部标签

MongoDB:在一个查询中使用 $geoIntersects 或 $geoWithin 和 $near

我想查询所有包含一个点的多边形的文档,然后针对该结果集,根据该点与文档位置的接近程度对其进行排序。想象一下,我有一个friend数据库,因为我很酷,想看看哪些friend在我的范围内并且愿意来玩。(每个friend都有一个约会多边形,这是他们愿意为约会旅行的范围)对于所有比赛,我希望他们继续根据他的实际地址和它到我的点(这是我的地址)的距离,看看我应该调用哪个friend,这样我就可以确定我是否同意他们来从遥远的地方。(比方说300米)到目前为止,我在下面有一个查询来查找包含我的点的多边形,但我不知道如何包含mongodb的$near运算符对于JSON:{"_id":"objid","

Mongodb $near、$geoWithin 和 $text

最初我想支持带有geo$near功能的mongodb文本搜索。后来意识到这两个不能一起使用,因为都需要索引。后来我决定改用$geoWithin。但是,结果不像$near那样按距离排序。我想知道是否有任何方法可以按“距离”对$geoWithin返回的结果进行排序? 最佳答案 $geoWithin运算符不返回排序结果。因此,MongoDB可以比地理空间$near或$nearSphere查询更快地返回$geoWithin查询,后者对结果进行排序。所以简而言之,使用$near或$nearSphere以便您可以获得排序结果。见docs:The

Mongodb 地理位置边界搜索/查询

我有一个包含位置“框”(正方形区域)列表的文档。每个框由2个点表示(左下角或西南角、右上角或东北角)。文档,例如:{locations:[[[bottom,left],[top,right]],[[bottom,left],[top,right]],[[bottom,left],[top,right]]]}我正在使用2d这些边界点的索引。我的输入是一个特定的位置点[x,y],我想获取列表中包含该点所在的所有文档。有没有geospatialoperator我可以用它来做吗?如何编写此查询? 最佳答案 您可以使用框运算符,请参阅:htt

python 前夕 0.8 : how to perform a $geowithin with a $centerSphere?

我们已经部署了一个docker容器,其中运行着一个MongoDB数据库。这是一个简单的数据库,我们在其中存储地理引用传感器数据(例如温度、风速)。由于我们想要查询基于搜索半径的这些地理引用观察,我们启用了这样的空间查询:db.ObsStationTemp.createIndex({point:"2dsphere"})db.ObsStationTemp.ensureIndex({"geometry":'2dsphere'})数据在MongoDB中被正确提取,我们实际上可以像这样执行空间查询:db.ObsStationTemp.find({geometry:{$geoWithin:{$ce

位置数组中的 MongoDb geoWithin

我正在使用meteor查询mongodb集合。现在这是我的查询,其中location是一个2dsphere索引。messages.find({location:{$geoWithin:{$centerSphere:[[longitude,latitude],radius]}}});如果“location”是一个2dsphere索引数组,我需要在这个查询中更改什么?/code>对? 最佳答案 文档结构如下{"_id":ObjectId("544e65dc0d86a53a8b32f7d0"),"locs":[{"loc":{"type"

mongodb - $geoWithin 和 $geoIntersects 运算符的区别?

mongoDB中的$geoWithin和$geoIntersects运算符有什么区别?如果我正在寻找坐标(使用默认坐标引用系统),$geoWithin和$geoIntersects将返回相同的结果。如有错误请指正。如果能提供任何用于理解差异的简单用例,我们将不胜感激。 最佳答案 来自$geoIntersects:SelectsdocumentswhosegeospatialdataintersectswithaspecifiedGeoJSONobject;i.e.wheretheintersectionofthedataandthe

mongodb - 在 MongoDB 中对 $geoWithin 地理空间查询进行排序

我正在尝试检索存储在我的数据库中的一堆多边形,并按半径对它们进行排序。所以我用一个简单的$geoWithin写了一个查询。所以,没有排序的代码看起来像这样:db.areas.find({"geometry":{"$geoWithin":{"$geometry":{"type":"Polygon","coordinates":[[/**omissis:arrayofpoints**/]]}}}}).limit(10).explain();解释结果如下:{"cursor":"S2Cursor","isMultiKey":true,"n":10,"nscannedObjects":10,"n

mongodb - 如何在 mongodb 中使用 geowithin?

使用$geoWithin时出现意外结果,我有这个:perim=10center=[35.964734,5.03952]如果我运行:list(db.users.find({"adr.cor":{"$geoWithin":{"$center":[center,perim]}}}))我得到一个包含更多坐标的结果,例如:[36.743954,4.365041]更远!(至少400公里)我做错了什么? 最佳答案 使用$center:[longitude,latitude],radius时,半径以弧度为单位,因此您必须将10弧度转换为公里。

mongodb - 如何在 mongodb 中使用 geowithin?

使用$geoWithin时出现意外结果,我有这个:perim=10center=[35.964734,5.03952]如果我运行:list(db.users.find({"adr.cor":{"$geoWithin":{"$center":[center,perim]}}}))我得到一个包含更多坐标的结果,例如:[36.743954,4.365041]更远!(至少400公里)我做错了什么? 最佳答案 使用$center:[longitude,latitude],radius时,半径以弧度为单位,因此您必须将10弧度转换为公里。

MongoDB - 使用 $polygon 或 $geometry 的 $geoWithin 查询给出不同的结果

使用MongoDB3.2我正在尝试对点集合使用2dsphere查询。假设我有一个集合cust_5_abcd,在the_geom字段上有一个2dsphere索引。在集合中添加几何图形:db.cust_5_abcd.insert({"chps0":"Texted'uneligne","the_geom":{"type":"Point","coordinates":[1.032715,40.380028]}})现在我正在尝试使用$geoWithin查询此点,以获取特定多边形内的所有数据。如果我将$geometry与GeoJSON定义一起使用,或者与$polygon和严格坐标一起使用,这就是我
12