我在 PHP 中插入带有地理空间数据的 Mongodb 记录时遇到问题

     2023-05-08     197

关键词:

【中文标题】我在 PHP 中插入带有地理空间数据的 Mongodb 记录时遇到问题【英文标题】:I'm having trouble inserting a Mongodb record with geospatial data in PHP 【发布时间】:2012-03-11 09:38:36 【问题描述】:

我正在尝试插入包含地理空间数据嵌套数组的记录。我什至尝试将数组设为对象,但也没有运气。这里或多或少是插入行:

$collection->insert($obj, array('safe'=>true));

一个有趣的事情是,当我将索引 'loc' 称为其他东西时,例如只是一个整数,插入工作。

这是应该进入 Mongodb 的数组,但不是:

Array
(
  [name] => Home
  [address] => 500 Pole Line Road
  [city] => Davis
  [state] => CA
  [zip] => 95618
  [loc] => Array
    (
      [lon] => -121.726710
      [lat] => 38.549576
    )

)

【问题讨论】:

您是否收到错误消息? 没有错误消息,但我发现奇怪的是,当我将数组索引从“loc”更改为“位置”或其他内容时,插入工作。这会扰乱地理空间索引吗? 我认为不应该,我已经看到了除 loc 之外的键示例。你必须试一试。 【参考方案1】:

MongoDB 不关心地理空间“字段”的键。它只需要前两个元素,第一个是经度,第二个是纬度。即使您将第一个命名为“纬度”,它仍然会被视为经度。我认为它不会插入的唯一原因可能是您在某些字段上有唯一键。

如果您要添加一个完整的工作(但很小)示例来说明您正在插入的内容,那么我可以更新答案,希望能显示出问题所在。

【讨论】:

好吧,这个问题完全令人尴尬,但发生的事情是我正在做一个 API 调用来获取纬度/经度,而这些数字最终是我试图通过 'loc 插入的字符串' 大批。我还不完全理解的事情是为什么不允许使用字符串。显然,除非 mongo 足够聪明地转换数据类型,否则地理空间索引将无法使用它,但是某些东西限制了整个插入工作。我猜它要么是 PHP 驱动程序要么是 mongo,但有人不喜欢这些字符串!它很容易通过类型转换为 double 来修复。【参考方案2】:
array( 'loc' => array( floatval($lon),  floatval($lat)))

【讨论】:

如何使用带有 nodejs 的 bigquery 插入方法插入地理类型数据

】如何使用带有nodejs的bigquery插入方法插入地理类型数据【英文标题】:Howtoinsertgeographytypedatausingbigqueryinsertmethodwithnodejs【发布时间】:2020-07-3114:22:35【问题描述】:我正在使用Node库与BigQuery集成。想知道如何使用Table.insert方法... 查看详情

在 mongo 上苦苦挣扎的地理空间查询

】在mongo上苦苦挣扎的地理空间查询【英文标题】:strugglingwithgeospatialqueriesonmongo【发布时间】:2022-01-1707:24:12【问题描述】:几天来,我一直在努力让查询正常工作。目前我的模型如下所示:classGeojsonincludeMongoid::Documentfield:type,... 查看详情

MongoDB中是不是有类似反向地理空间查询的东西?

】MongoDB中是不是有类似反向地理空间查询的东西?【英文标题】:IstheresomethinglikeareversegeospatialqueryinMongoDB?MongoDB中是否有类似反向地理空间查询的东西?【发布时间】:2019-04-0314:07:35【问题描述】:我有一个兴趣点列表,例如... 查看详情

使用 AWS Redshift 进行地理空间分析

...为。有人用Redshift做过地理空间分析吗?没有看到任何对带有Redshift的GIS工具的直接支持。有什么建议吗?【问题讨论】:【参考方案1】:截至 查看详情

如何将空间索引的数据提取到我的 PHP 应用程序中?

...位置的地理坐标。我已经能够使用这个成功地将一个POINT插入到我的表中:$point=newZend_Db_Expr("GeomFromText(\'POINT(-12.4 查看详情

将 Facebook 登录和地理位置数据插入 MongoDB

】将Facebook登录和地理位置数据插入MongoDB【英文标题】:InsertingFacebookloginandGeolocationdataintoMongoDB【发布时间】:2015-05-2414:27:24【问题描述】:我目前正在开展一个项目,其中用户使用Facebook登录,查看带有精确位置的地图,然后... 查看详情

ArangoDB 地理空间查询无法按预期工作

...对其进行空间索引,然后使用arangodb空间查询获取数据。我在数据库中加载数据并对其进行索引的步骤如下:arangoimport--fi 查看详情

使用带有oops的mysqli创建数据库并在数据库中插入值

...valueindatabase【发布时间】:2014-11-2102:42:33【问题描述】:我在插入时遇到错误,所以我很困惑。请帮助我或建议我最好的oop教程testdb.php页面define(\'DB_SERVER\',\'localhost\');define(\'DB_U 查看详情

基于地理位置的查询在 php 的 mongo 中不起作用

】基于地理位置的查询在php的mongo中不起作用【英文标题】:Geolocationbasedquerynotworkinginmongofromphp【发布时间】:2012-01-2011:56:30【问题描述】:我有一个名为city的mongo集合,具有以下json"city_name":"Amesbury","lat":"42.8583925","lng":"-70.9300376... 查看详情

地理位置跟踪并插入 mysqlDatabse

】地理位置跟踪并插入mysqlDatabse【英文标题】:GeoLocationtrack&insertintomysqlDatabse【发布时间】:2020-06-0312:20:36【问题描述】:我想跟踪用户位置并保存到数据库中我正在使用地理定位脚本在加载页面时将用户位置数据跟踪到mysql... 查看详情

无法提取地理键(nodejs 和 mongo)

】无法提取地理键(nodejs和mongo)【英文标题】:Can\'textractgeokeys(nodejsandmongo)【发布时间】:2015-05-0117:29:52【问题描述】:我正在使用nodejs(expres框架)和mongodb和mongoose。我正在尝试将地理位置坐标保存到我的数据库中。这是我的... 查看详情

PHP,MySQL - 插入带有标题的 CSV 文件

】PHP,MySQL-插入带有标题的CSV文件【英文标题】:PHP,MySQL-InsertCSVfilewithheader【发布时间】:2014-11-2319:24:09【问题描述】:我有带有标题和数据字段的CSV文件。如何通过SQL查询插入它并删除标题。目前我编写的代码正在运行,但它... 查看详情

mongo存储的javascript是nodejs中多个数据库插入的好解决方案

】mongo存储的javascript是nodejs中多个数据库插入的好解决方案【英文标题】:ismongostoredjavascriptgoodsolutiontomultipleDBinsertsinnodejs【发布时间】:2017-09-1919:04:06【问题描述】:我有一个功能是平均堆栈,它有多个集合插入和创建。如果... 查看详情

PHP:我在数据库中插入 1 条记录,但它自动插入 2 [重复]

】PHP:我在数据库中插入1条记录,但它自动插入2[重复]【英文标题】:PHP:I\'minserting1recordinthedatabase,butitisautomaticallyinserting2[duplicate]【发布时间】:2020-03-1821:26:34【问题描述】:我在数据库中插入1条记录,但它会自动插入2条记... 查看详情

地理空间数据

一、在地理数据的生产中,地理基础框架数据主要是4D产品:DLG:DigitalLineGraph(数字线划数据)DRG:DigitalRasterGraph(数字栅格数据)DEM:DigitalElevationModel(数字高程模型)DOM:DigitalOrthoMap(数字正射影像) 二、根据空间数据... 查看详情

使用 redis 进行地理空间(稳定版)

...度、纬度输入。这意味着我需要了解我应该如何将键、值插入redis以及我应该使用哪种数据结构另一方面,我应该如何通过给定的经度、纬度输入在redis中搜索附近的用户我知道它在Redis3.2上可 查看详情

盒子地理空间查询中的猫鼬无法正常工作

...进行地理空间查询的正确方法是什么?复杂的故事:我用带有空间索引的猫鼬创建了一个模式varMySchema=newSchema(//skipped...location:type:[N 查看详情

如何使用 Go 驱动程序或 mgo/qmgo 在 MongoDB 中存储地理空间数据?

...iverormgo/qmgo?【发布时间】:2021-11-1818:11:01【问题描述】:我在Go中使用MongoDBdriver和mgo-forkedqmgo来操作MongoDB(版本5.x)。我有一些地理空间数据要存储和查询,搜索了一些文章,有人提到创建自定 查看详情