我在Redis中有2套,一套是hmset制作的:HMSETcars:1makeFerrarimodel458colorredtopSpeed202mph然后:SADDmake:Ferrari1当我输入这个命令时:SMEMBERSmake:Ferrari我得到“1”然后我添加:geoaddcarLoc13.36138938.1155561我正在尝试使用以下命令获取这两个集合的交集:georadiuscarLoc13.36138938.1155561storekey1我过滤了第一组并存储在另一组中,但我找不到将SMEMBERSmake:Ferrari的结果存储到另一组并获得它们的交集的方法
db.posts.ensureIndex({"loc":"2d"})如果我这样做并通过它查询...单位是什么?db.posts.find({"loc":{"$within":{"$center":[user_center,user_radius]}}})如果我想找到5英里外的东西,我的半径是多少? 最佳答案 你的单位就是你存放在那里的任何东西。如果您将度数存储在地球仪上,则该度数将成为$within的单位。如果您使用度数,则5英里的$within将为~0.07,因为度数为60海里。 关于
我有一个包含两个字段的地点模型:classPlaceincludeMongoid::Documentfield:name,:type=>Stringfield:loc,:type=>Arrayindex([[:loc,Mongo::GEO2D]],:background=>true)validates_presence_of:nameend我可以轻松地在我的View中输出纬度和经度:@place.loc['lat']MongoDB中代表每个地点的记录如下所示:{"_id":ObjectId("0293uhjf2hfio2h3"),"name":"Starbucks","loc":{"l
我有一组带有地理空间索引location:{lat:XX.XXXX,lng:XX.XXXX}的文档。但我希望它们由TimeZone输出。我正在考虑将地理定位转换为时区,并基于此创建一个索引,但我也不确定该怎么做,或者使用地理空间索引是否更容易。 最佳答案 MongoDB可以使用$geoWithin查询条件检查是否包含GeoJSON中描述的任意多边形中的点。您可以在GeoJSON中创建一个新的时区文档集合及其位置多边形。为此,请尝试thisGitHubrepo.我对thisrelatedSOquestion的回答也可能有用。获得时区集
我有一个包含位置“框”(正方形区域)列表的文档。每个框由2个点表示(左下角或西南角、右上角或东北角)。文档,例如:{locations:[[[bottom,left],[top,right]],[[bottom,left],[top,right]],[[bottom,left],[top,right]]]}我正在使用2d这些边界点的索引。我的输入是一个特定的位置点[x,y],我想获取列表中包含该点所在的所有文档。有没有geospatialoperator我可以用它来做吗?如何编写此查询? 最佳答案 您可以使用框运算符,请参阅:htt
我收集了这样的文档:{..."CurrentLocation":{"type":"Point","coordinates":[-92.48436693078111,35.85223020932276]}...}我需要使用两个可能的中心点进行“$near”查询:db.Truck.find({"$or":[{"DestinationLocation":{"$near":{"$geometry":{"type":"Point","coordinates":[-117.256875,41.856405]},"$maxDistance":100000.0}}},{"DestinationLoca
我有一个集合,其属性为“place”,如下所示。"place":{"name":"CentralRegion","country":"Country_A","coor_type":"Polygon","coordinates":[[[103.749959507073,1.2123138339349],[103.918426999964,1.2123138339349],[103.918426999964,1.36874499902569],[103.749959507073,1.36874499902569]]]}我正在尝试使用$geoInterset运算符来获取文档列表,其中plac
我有这种情况。在我们的数据库中有“存储”文档和“分支机构”作为子文档(一对多)。每个分支机构都有一个位置属性,该属性被索引以用于地理位置搜索。所以,问题是:{store:{"name":"store1",branchoffices:[{"name":"bo1","location":[-70.64341379999999,-33.4268697]},{"name":"bo2","location":[80.4,43.3]}]}}如果我做这个聚合:Store.collection.aggregate([{"$geoNear"=>{"near"=>[-70.64341379999999,-
我正在开发一个API来存储位置,包括它们的坐标,但我不知道如何为它们建模。我应该和latitude:{type:Float},longitude:{type:Float},或者有没有办法将它们建模为数组,例如[43.95,-26.75]?我想稍后过滤它们的距离。 最佳答案 最近我在做地理定位方面的工作,我想我可以回答你的问题,为时已晚,但这可能对正在寻找解决方案的其他人有所帮助。location:{type:{type:String,default:'Point',},coordinates:[Number],//[22.2475,
我想根据它们与2D空间中多个点的接近程度对我的结果进行排序。我假设这将通过查询第一点然后根据第二点重新查询/检查这些结果来完成?也许下面的代码可以更好地解释我想要实现的目标?db.runCommand({geoNear:"places",near:[[52.5243,13.4063],[48.1448,11.5580]]})解决方案:如果有人感兴趣,我就是这样实现的(感谢下面的答案)a=Trip.geo_near([52.5243,13.4063],:max_distance=>40,:unit=>:mi).uniqb=Trip.geo_near([48.1448,11.5580],: