MongoDB学习笔记~地图坐标的支持与附近点的查找

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介:

Mongodb这个数据库很不错,它的方法也不错,为了实现坐标功能,它甚至为我们提供了geo里的一些算法,帮助我们通过某个点去位置和查找N个附近的点。

表面

在您存储地理数据和编写查询条件前,首先,您必须选择表面类型,这将被用在计算中。您所选择的类型将会影响您的数据如何被存储,建立的索引的类型,以及您的查询的语法形式。

MongoDB提供了两种表面类型:

球面

如果需要计算地理数据就像在一个类似于地球的球形表面上,您可以选择球形表面来存储数据,这样就可以使用 2dsphere 索引。

您可以按照坐标轴:经度,纬度 的方式把位置数据存储为GeoJSON对象。GeoJSON的坐标参考系使用的是 WGS84 数据。

平面

如果需要计算距离,就像在一个欧几里德平面上,您可以按照正常坐标对的形式存储位置数据并使用 2d索引。

测试类

    public class Zoo : NoSqlEntity
    {
        public string title { get; set; }
        public double[] loc { get; set; }

    }

测试数据

        [TestMethod]
        public void Addloc()
        {
            for (int i = -180; i < 180; i += 5)
                MongoDbClient.MongoManager<Zoo>.Instance.InsertOne(new Zoo { title = "北京" + i, loc = new double[] { i, i } });
        }

数据添加后的列表

查找你需要的附近的点

       [TestMethod]
        public void Findloc()
        {
            var filter = Builders<Zoo>.Filter.Near(i => i.loc, 50, 50, maxDistance: 50);
            var result = MongoDbClient.MongoManager<Zoo>.Instance.Find(filter);
            foreach (var item in result.ToList())
            {
                Console.WriteLine(item.title);
            }
        }

回到目录

为数据集合的坐标字段添加索引

 本文转自博客园张占岭(仓储大叔)的博客,原文链接:MongoDB学习笔记~地图坐标的支持与附近点的查找,如需转载请自行联系原博主。

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。 &nbsp; 相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
mcy247
+关注
目录
打赏
0
0
0
0
17
分享
相关文章
【BackEnd--Mongodb】学习笔记(完整详细版)
MongoDB是一种面向文档的非关系型数据库,所谓的面向文档是一种类似JSON的结构,因此可以简单理解MongoDB存储的是各种各样的JSONMongoDB可以快速开发web型应用,因为存储的是JSON格式,因此无需像关系型数据库那样需要建表,非常的的灵活。
315 0
MongoDB 快速入门-MongoDB 最佳实践(二)|学习笔记
快速学习 MongoDB 快速入门-MongoDB 最佳实践(二)
511 0
MongoDB 快速入门-MongoDB 最佳实践(二)|学习笔记
MongoDB学习笔记(五) 集群搭建之副本集
MongoDB学习笔记(五) 集群搭建之副本集
439 0
MongoDB学习笔记(四) 集群搭建之主从复制
MongoDB学习笔记(四) 集群搭建之主从复制
629 0
MongoDB学习笔记(二) 增删改查
MongoDB学习笔记(二) 增删改查
212 0
MongoDB学习笔记(一) 安装配置
MongoDB学习笔记(一) 安装配置
1053 0
下一篇
oss创建bucket