问题标签 [2dsphere]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
node.js - MongoDB地理空间查询不返回任何内容
我有一个带有2dsphere
索引的集合,并希望使用$geoWithin
and$centerSphere
函数来查询它。
模型摘录:
我成功地将一堆文档插入到数据库中,现在尝试通过以下方式查询它:
我面临的问题是,该调用不返回任何内容,既不返回错误,也不返回数据。mongo shell
我在我的应用程序以及我的应用程序中尝试了它,node.js
我可以确认对象的经度和纬度已插入数据库。我也尝试$near
与 a$maxDistance
一起使用,结果相同。我还切换了纬度和经度只是为了检查……我确实r
通过除以地球半径来转换为弧度。
我对此时出了什么问题一无所知,并感谢您提出任何建议!
mongodb - 无法在 mongoDB 中创建 2dsphere 索引
当我尝试在 mongoDB 中创建 2dsphere 索引时,我收到此错误消息:
收集数据如下所示:
我必须创建 2dsphere 索引才能在多边形区域中搜索坐标。我怎样才能解决这个问题?谢谢
mongodb - mongodb geoWithin 查询非常慢
我正在使用大约 500 平方公里的多边形运行 geoWithin 查询,执行时间很长,大约在 30 秒到 5 分钟之间。集合只有 180k 行,多边形可以从 2km² 到 10,000km² 不等。服务器有大约 4GB 的 RAM。在本地运行(以消除网络延迟)没有明显效果。
我在集合上设置了一个 2dsphere 索引,并将字段数限制为仅返回 _id(目前)。
这是我的文件的样子:
这是我的索引:
这是我的查询:
这是运行的输出explain()
这表明正在使用索引。如果我尝试使用较小的区域,则查询确实会变得更快,而使用更大的区域则更慢。
这是我的收藏统计:
我运行了db.setProfilingLevel(2)
命令,重新运行了查询,然后检查了db.system.profile
集合。
第一条记录是实际查询 ( "op": "query"
)
然后还有 7 个带有 ( "op": "getmore"
) 的查询,我假设它们正在获取其余数据。
每个查询产生 1000 行 ( "nreturned": 1000
),每个查询平均有 4000行millis
。
我读过很多问题,人们抱怨 geojson 查询占用 > 2s 和 > 1m 行,所以我显然遗漏了一些简单的东西。
node.js - Mongoose - 如何在自定义类型上添加 2dsphere 索引?
我正在使用 Mongoose 和Mongoose-geojson-schema但是我无法2dsphere
在我的字段上添加索引:
得到这样的错误:
mongodb - 平均堆栈 2dsphere 半径搜索
我是新来的意思是堆栈(和一般的编程),但有一个简单的应用程序启动并运行。
我的模型如下所示:
我为我的数据库播种:
我的控制器通过以下方式提取用户位置并列出餐馆:
我的视图通过以下方式显示用户位置,获取最大输入并列出餐厅:
我使用了 yeoman angular-fullstack 生成器。在我的 html 视图中,我提取了用户的当前位置“lat”和“lng”,然后想搜索距用户最大距离内的餐馆数据库。
我如何在这个脚手架中做到这一点?我试图让这些示例/教程起作用,但无济于事:(
mongodb - Mongoose Mongo 2dsphere geoWithin
在阅读了许多与我非常接近的问题并阅读了 MongoDB 文档和 Mongoose 文档之后,我仍然无法回答我的问题。
在节点 4.4.0 上使用 express 4.13.4、mongoose 4.4.10、mongodb 2.1.14
我的猫鼬位置架构:
我的CatalogModel
架构(我写给 Mongo 的内容):
我创建了一个具体的示例并写入 MongoDB(这很好......因为我可以在 Mongo 中查询它)
在 Mongo 中,我向集合询问了索引:
这就是它所说的(不完全确定这意味着什么)
我可以做一个db.catalogmodels.find()
并取回我的文件。
我什至可以在 Mongo 中调用 $geoWithin:
但这是实际的问题:
Mongoose 一直告诉我[错误:无法使用 $geoWithin]
我还将 .find().where().within() 调用替换为:
Mongoose 不喜欢 $geoWithin 调用是否有原因?最新的 API 说这应该可以。
mongodb - mongodb 2dsphere 索引的内部原理是什么?
Mongodb 站点显示 2d 索引的内部结构是GeoHash
.
我想知道 2dsphere 索引的内部结构。
是它GeoHash
,Cartesian Tiers
还是其他技术?
刚找了mongodb网站new-geo-features的博客介绍2dsphere索引。
但没有细节。
mongodb - MongoDB 错误代码 16755 - 无法提取地理键和重复顶点
当我尝试在 geometry 上创建索引时db.polygons.createIndex({"geometry":"2dsphere"})
,它停在某个多边形上,错误代码为 16755。它说它Can't extract geo keys
和Duplicate vertices: 18 and 20
。
因此,经过进一步检查,当多边形中的 2 个节点靠近甚至重复时,似乎会发生这种情况。
然后我在 QGIS 中手动删除此节点并重试该过程,却发现另一个多边形存在相同问题。
我怎样才能解决这个问题而不必重复修复多边形>上传到MongoDB>创建索引的整个过程?有没有办法找出有多少多边形有这个问题?
node.js - 从同一 Mongodb 集合中的坐标数组创建 GeoJson
我想将我的 mongodb 集合从 2d 修改为 2dsphere。 我的 db.users 中有这个结构:
我想要这样的东西:
我试过这个:
显然,它在字面上插入“'interests.$.coordinates'
并在节点中尝试了这个:
但是坐标被插入了混合值。
想法?
谢谢!!
excel - 从 Excel 文档导入数据后,在数据上创建地理空间索引时出错
我已经从 excel 文档中导入了这些数据。
这是我的示例文档。我无法在 loc 上创建地理空间索引。如何创作?