jjzjj

geospatial

全部标签

mongodb - 首先使用简单键的地理空间索引

阅读有关MongoDB和GeospatialIndexing的信息后我很惊讶它不支持不以2d索引开头的复合键。我不知道我是否会从中获益,但现在mssql解决方案同样慢/快。SELECTTOP30*FROMVillagesWHERESID=10ORDERBY(mathtocalcradiusfromthecenterpoint)这行得通,但速度很慢,因为它不够智能,无法使用索引,因此它必须计算具有该SID的所有村庄的半径。所以在Mongo中我想创建一个像这样的索引:{sid:1,loc:"2d"}这样我就可以从一开始就过滤掉很多。我不确定是否有任何解决方案。我考虑过为每个sid创建一个集

mongodb - 使用 $near 按存储在文档中的距离过滤文档

我正在使用以下示例来更好地解释我的需求。我在map上有一组点(用户),集合模式如下{location:{latlong:[long,lat]},maxDistance:Number}我还有另一个集合,其中包含该地区发生的事件。架构如下所示{eventLocation:{latlong:[long,lat]}}现在用户可以添加他们的位置和他们想要参加事件的最大距离并保存。每当发布新事件时,所有满足其偏好的用户都会收到通知。现在我该如何查询。我尝试对用户模式进行以下查询{$where:{'location.latlong':{$near:{$geometry:{type:"Point",c

包含多个位置的 MongoDB 和 2dsphere 索引

在MongoDB集合中,我想在包含许多位置的字段上创建2dsphere索引。我认为这一定是可行的,因为$geoNear阶段运算符有includeLocs或uniqueDocs之类的选项,我们可以指定这些选项一些条件,如果位置字段有多个位置。然后我尝试在字段loc上创建索引,如下所示://db.users{//otherfieldsloc:[{type:"Point",coordinates:[-20,20]},{type:"Point",coordinates:[-30,30]}]}使用代码:db.users.createIndex({loc:"2dsphere"})但我得到的错误是l

mongodb - $geoNear - mongodb 聚合中的 $maxDistance 不起作用

我有以下查询,它使用mongoDBfind()的“2dsphere”索引根据经度和纬度返回结果,但是当我在聚合中使用相同的查询时,$maxDistance不起作用并且始终显示相同的结果。db.travelLocationSearch.find({location:{$near:{$geometry:{type:"Point",coordinates:[-3.7037901999999576,40.4167754]//madrid,spain},$maxDistance:(60*1609.344)//milestometers}}}).count()60英里的结果计数-147200英里-

没有嵌入纬度经度字段的 MongoDB GeoSpatial 查询

我有一个从csv文件导入的非常大的数据库(约600万行)。我正在查看MongoDB及其关于地理空间索引的文档。您需要将纬度和经度字段嵌入到数组中。不幸的是,我导入的结构中的字段是分开的。“纬度”:54.770233,“经度”:-6.537741,是否有任何可能的方法查询数据库以使用纬度点54和经度-6计算25英里半径内的二十个最近的文档。我在MySQL中很好地创建了查询:SELECT*,(3959*ACOS(COS(RADIANS(54))*COS(RADIANS(纬度))*COS(RADIANS(longitude)-RADIANS(-6))+SIN(RADIANS(54))*SIN

performance - 用于地理空间查询的 MongoLab 上的 MongoDB 性能

我有一个包含超过400,000个文档的地点集合。我正在尝试进行地理空间查询,但它们似乎总是超时。我从MongoLab界面进行搜索:{"location":{"$near":[38,-122]}}然后页面就超时了。还通过我的控制台运行了这个命令:db.runCommand({geoNear:"places",near:[50,50],num:10})它确实成功了,但大约需要5分钟才能完成。我确实有一个位置上的地理空间索引。location{"location":"2d"}是否不可能对如此大的集合进行地理空间查询(毕竟对于MongoDB集合来说相当小)?编辑:MongoLab就此问题亲自联

MongoDB/PyMongo 地理空间查询 : distance of documents from a point

我最近将我的MongoDB从2.2.1版升级到2.4.6版,并将pymongo升级到2.6.2版。升级的原因之一是新版本的MongoDB能够计算和返回文档(包括适当的坐标)与地理空间查询中心的距离asexplainedhere.到目前为止,我执行了以下查询:db.collection.find({"loc":{"$within":{"$center":[[LON,LAT],RADIUS]}}})其中LON、LAT和Radius是适当的数字。然后,我以编程方式计算返回的每个文档与中心的距离。现在我正尝试让MongoDB代我进行距离计算,因为与我的代码相比效率更高。我现在正在尝试的是:db

Mongodb:在两个字段的数组上创建索引

我有一个MongoDB集合,其中位置数据存储如下:{...longitude:"-73.985679",latitude:"40.75003",...}我需要在这些上创建一个2dsphere索引。有没有办法将这两个单独的字段组合成一个GeoJSON格式的数组? 最佳答案 2dsphere索引的唯一有效形式是GeoJSON对象或遗留坐标对。后一种形式是单个字段上的数组或带有“lat”和“lon”键的子文档。您最好在文档中转换此信息以供持续使用,并使用GeoJSON格式。最好和最安全的方法是使用Bulk操作API:varbulk=db.

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

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

MongoDB:地理空间索引数组格式不正确

在尝试设置以在MongoDB上使用地理空间索引时,我遇到了位置数组格式不正确的错误消息。这是我的收藏“测试”。{"_id":ObjectId("4f037ac176d6fdab5b00000a"),"CorporateId":"XYZ12345","Places":[{"Location":{"Longitude":"50.0","Latitude":"50.0"},"ValidFrom":"2011-11-0100:00:00","ValidTo":"2021-12-3100:00:00","itemCount":"1"}]}一旦我运行这段代码。db.test.ensureIndex