那么世界上如果我不想使用POSTGRESQL 的 postgis来处理我的地理数据以外的选择,那么NO.2 的选择就是mongodb的 GeoJSON 此时更简单的方式,以及不需要进行插件的方式,通过一整套...2 MONGODB 如何存储和表达这些数据,这里存储地理数据的方式在MONGODB 中表现为 GEOJSON 数据。...https://docs.mongodb.com/manual/reference/geojson/ 在mongodb中具体的展示GEOJSON 的格式为 标记location 在 location...2 $geoWithin 3 $nearSphere 4 $geoIntersects 下面针对部分查询方式给出查询的样例 near 样例 下面有导入了一个地理数据的collection ,...其他样例可以查看下面的网站中的例子 https://dev.to/vcpablo/4-ways-to-find-geojson-data-in-mongodb-14pb 4 关于查询中MONGODB
数据存储 mongoDb自带了地理空间索引,使用2dsphere索引类型 可以存储GeoJSON格式数据 指定点、线和多边形。...字段为需要存储的数据 type:Point 点 coordinates 经纬度信息: [longitude, latitude]代表[经度, 纬度] name为附加自定的存储名称字段 参考: http://geojson.org.../ mongodb官方文档:https://docs.mongodb.com/manual/reference/geojson/ 添加索引 手动创建 db.order.ensureIndex( {"...mongocollection.createindex.php#119584 数据查询 runCommand执行 db.runCommand( { geoNear: "order" , //存在2dsphere索引的集合名称 near...] } , spherical: true, limit:1, }) find db.order.find({"order_info.survey_coordinate" : { "$near
原标题:Spring认证中国教育管理中心-Spring Data MongoDB教程五(内容来源:Spring中国教育管理中心) 11.6.5.GeoJSON 支持 MongoDB 支持GeoJSON和用于地理空间数据的简单...请参阅有关 GeoJSON 支持的MongoDB 手册以了解要求和限制。 域类中的 GeoJSON 类型 在域类中使用GeoJSON类型很简单。...度量和距离计算 然后 MongoDB$geoNear运算符允许使用 GeoJSON Point 或旧坐标对。..."near": [-73.99171, 40.738868] } } NearQuery.near(new GeoJsonPoint(-73.99171, 40.738868)) { "$geoNear...GeoNear 和 GeoJSON { "$geoNear": { "maxDistance": 400, "num": 10, "near":
上篇文章中我们介绍了MongoDB中索引的简单操作,创建、查看、删除等基本操作,不过上文我们只介绍了一种类型的索引,本文我们来看看其他类型的索引。...---- _id索引 我们在上文介绍过,我们往集合中添加文档时,默认情况下MongoDB都会帮助我们创建一个名为_id的字段,这个字段就是一个索引。...({x:{$near:[90,0]}}) 默认情况下返回该点附近100个点,我们可以通过$maxDistance来设置返回的最远距离: db.sang_collect.find({x:{$near:[90,0...2d sphere索引 2dsphere适用于球面类型的地图,它的数据类型是GeoJSON格式的,我们可以在http://geojson.org/地址上查看GeoJSON格式的样式,比如我们描述一个点,...好了,MongoDB中的索引问题我们就说到这里,小伙伴们有问题欢迎留言讨论。 参考资料: 1.《MongoDB权威指南第2版》
2.5.1 2dsphere索引 2dsphere索引支持GeoJSON地理空间格式或传统的坐标对格式数据存储。...例如:下面的places集合,其中loc键是GeoJSON格式数据。 ? 现在loc列,创建一个2d球面索引。...: [-73.88,40.78],num : 10}) 或 db.places.find( { “loc” : { $near : [-73.88,40.78]}}).limit(10) 注意事项:...·geoNear命令和$geoNear管道要求集合最多只有1个2dsphere索引或2d索引;而地理空间查询操作(例如,$near和$geoWithin)允许集合具有多个地理空间索引。...>”}, { bits: } ) 注意事项: ·geoNear命令和$geoNear管道要求集合最多只有1个2dsphere索引或2d索引;而地理空间查询操作(例如,$near
MongoDB系列文章: MongoDB安全实战之Kerberos认证 MongoDB Compass--MongoDB DBA必备的管理工具 MongoDB安全实战之审计 MongoDB安全实战之SSL...$geoWithin运用$geometry操作符指定GeoJSON对象。 --查询完全存在于GeoJSON多边形内的所有loc数据。...$geoWithin: { $geometry: {type: “Polygon”,coordinates: [[ [0,0],[3,6],[6,1],[0,0] ]]} } } } ) $near...2dsphere和2d索引支持$near。...--查询离指定的GeoJson点至少1000米的文档db.places.find({ location:{ $near: {$geometry: {type:“Point”,coordinates:[
使用全文本索引可以非常快的进行文本搜索,mongoDB支持多种语言,可惜在免费版中,并不支持世界第一的火星文语言(汉语)。查mongoDB的官网可以看到,在企业版中是支持汉语的全文索引的。...允许使用GeoJSON格式(http://www.geojson.org)指定点、线、多边形。...点可以用形如[longitude,latitude]([经度,纬度])的两个元素的数组表示("loc"字段的名字可以是任意的,但是其中的子对象是有GeoJSON指定的,不能改变):{ "name"...查询时,需要将希望查找的内容指定为形如{"$geometry":geoJsonDesc}的GeoJSON对象。...”查询附近的位置:db.mapinfo.find({ "loc":{"$near":{"$geometry":customMapinfo}} })三、2d索引 2d索引也是mongoDB最常用的地理空间索引之一
具体实现思想是:首先使用GeoTools读取shapefile文件,然后遍历每个feature,将feature转为GeoJSON的字符串。...每个GeoJSON的字符串作为mongodb的collection中的一个document。...version> org.geotools gt-geojson...= (SimpleFeature) sfIter.next(); // Feature转GeoJSON FeatureJSON fjson = new...下面是一个地理查询的示例: 查询在给定点的最大距离约束下的地理实体 db.continents.find( { geometry : { $near
mongodb地理位置索引,2d和2dsphere,对应平面和球面。 mongodb位置查询文档 实现原理:参考文章 两种索引方式 地理位置索引,必须创建索引才可以能查询,目前有两种索引。...2d index: 使用2d index 能够将数据作为2维平面上的点存储起来,在MongoDB 2.2以前推荐使用2d index索引。...2dsphere index: 2dsphere index 支持球体的查询和计算,同时它支持数据存储为GeoJSON 和传统坐标。...首先需对col里的w设置索引为’2d’,方可进行$near查询 db.location.ensureIndex({w:"2d"}) w对应的经纬度外镶字段 创建了地理位置索引,默认mongoDB...$near 附近的点 db.location.find({w:{$near:[1,1]}}) $near会返回最近的100个记录.
Mongodb专门针对这样的查询建立了地理空间索引。 2d和2dsphere索引。 2....创建索引 建立places集合,来存放地点, loc字段用来存放地区数据GeoJSON Point。...[ 0 , 0 ] ] ] } } } } ) 3.2 查询附近的值 使用$near...db.places.find( { loc : { $near : { $geometry :
但是,MongoDB不得不扫描整个索引以便找到所有文档。因此,如果对查询结果的范围做了限制,那么MongoDB在几次匹配之后就可以不再扫描索引,在这种情况下,将排序键放在第一位是一个非常好的策略。...这个时候我们可以用到MongoDB中的稀疏索引。该索引与关系型数据库中的稀疏索引是完全不同的概念。MongoDB中的稀疏索引只是不需要将每个文档都作为索引条目。...允许使用GeoJSON格式(http://www.geojson.org)指定点、线、多边形。...查询时,需要将希望查找的内容指定为形如{"$geometry":geoJsonDesc}的GeoJSON对象。...mongoDB最常用的地理空间索引之一,用于游戏地图。
在MongoDB中,2dsphere或2d是描述是由一种叫做geoJSON的标准格式来描述的,从名字上就可以看出来首先它是一坨JSON,其次它定义了自己的一些标准。...比如我们要用geoJSON来描述一个点、一条线,就应该用如下方式进行描述: // 描述一个点"loc":{ "type":"Point", "coordinates":[ 116.55944824218749,30.58827267102698...外,还有很多支持地理空间索引的数据库或引擎都会支持geoJSON标准。...原生语句// 因为我懒的看这个mongodb-library的库语法了$cursor = $database->command( array('geoNear' => 'user','near'...---- 本文关键词 MongoDB、2dsphere,Google S2、B-Tree、geoJSON 本文代码github https://github.com/elarity/wechat-official-accounts-demo-code
在MongoDB中,2dsphere或2d是描述是由一种叫做geoJSON的标准格式来描述的,从名字上就可以看出来首先它是一坨JSON,其次它定义了自己的一些标准。...比如我们要用geoJSON来描述一个点、一条线,就应该用如下方式进行描述: // 描述一个点"loc":{ "type":"Point", "coordinates":[ 116.55944824218749,30.58827267102698...外,还有很多支持地理空间索引的数据库或引擎都会支持geoJSON标准。...原生语句// 因为我懒的看这个mongodb-library的库语法了$cursor = $database->command( array('geoNear' => 'user','near'...本文关键词 MongoDB、2dsphere,Google S2、B-Tree、geoJSON 本文代码github https://github.com/elarity/wechat-official-accounts-demo-code
参考: Redis 命令参考 » GEO(地理位置) MongoDB 介绍 MongoDB 是老牌的支持空间索引的数据库,作为一个文档型数据库,它在存储日志或静态数据时效果不错。...2dsphere 索引支持查询在一个类地球的球面上进行几何计算,以GeoJSON对象或者普通坐标对的方式存储数据。...查询语句类似(下面是查询距目标点 3000米 内的地点): db.poi.find( { loc : { $near : { $geometry...=> $name ]; Mongo在查询返回距离时需要使用 runCommand 命令,其语法类似于 db.runCommand({"geoNear":"collection", "near...参考:Mongodb地理空间索引和查询(Geospatial Indexes) MongoDB » GeoJSON PostgreSQL 介绍 postgreSQL 是一个知名的关系型数据库,构建在其上的空间对象扩展模块
两种解决方案: 一、将整个shapefile转为GeoJSON然后直接导入mongoDB数据库中 首先,将shapefile数据转为WGS84地理坐标,然后使用GDAL的命令行工具ogr2ogr...进行格式的转换,转换命令如下: ogr2ogr -f geoJSON continents.json continents.shp 删除生成JSON文件的前两行{ "type": "FeatureCollection...这样子整个shapefile文件在mongodb中是以一个document存在的。...二、更加细粒度的存储方法是将shapefile中的每个feature取出来转为GeoJSON存入mongodb 具体实现代码入下(Java版本): package cn.tzy.mongodb;...; import org.opengis.feature.simple.SimpleFeature; import com.mongodb.MongoClient; import com.mongodb.client.MongoCollection
2dsphere索引支持以GeoJSON对象和旧版坐标对(另请参见2dsphere索引字段限制)存储的数据。对于旧版坐标对,索引会将数据转换为GeoJSON Point。...版本3是在MongoDB 3.2及更高版本中创建2dsphere索引时的默认版本。 版本 2 MongoDB 2.6引入了2dsphere索引的版本2。...其他GeoJSON对象 版本2和更高版本的2dsphere索引包含对其他GeoJSON对象的支持:MultiPoint,MultiLineString,MultiPolygon和GeometryCollection...有关所有受支持的GeoJSON对象的详细信息,请参见GeoJSON对象。...2dsphere索引字段限制 具有2dsphere索引的字段必须包含坐标对或GeoJSON形式的数据。
地理位置检索 MongoDB 支持对地理空间数据的查询操作。...2d : 使用2d index 能够将数据作为二维平面上的点存储起来,在MongoDB 2.4以前使用2。...2dsphere: 2dsphere索引支持查询在一个类地球的球面上进行几何计算,以GeoJSON对象或者普通坐标对的方式存储数据。...MongoDB内部支持多种GeoJson对象类型: Point 最基础的坐标点,指定纬度和经度坐标,首先列出经度,然后列出 纬度: 有效的经度值介于-180和之间180,两者都包括在内。...GeoJsonPoint point = new GeoJsonPoint(116.404, 39.915); //2、构建NearQuery对象 NearQuery query = NearQuery.near
MongoDB 2.4已经发布,该版本增加了一些新特性,如文本搜索、基于哈希的分片、更好的地理空间功能、支持GeoJSON以及一些性能和工具方面的提升。...我们还和10gen讨论了MongoDB接下来的路线图。...一些关键的提升如下: 引入了文本搜索,现在是一个测试功能,支持15种语言的词干和断词 基于哈希的分片,用于数据交叉传播时不能轻易预测任何自然分片键的情况 地理空间索引和GeoJSON支持 安全提升——新的模块化身份认证系统...将来版本的MongoDB将继续关注这些领域,同时我们还会继续增强我们为MongoDB提供的工具。MongoDB监控服务(MMS)在MongoDB社区已经非常流行,有超过15,000位用户并在持续增长。...MongoDB索引的使用