- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
随着 2.3 >
的引入,MongoDB 在位置数据处理和查询方面变得更加有用。 MongoDB 将文档存储为 BSON,因此每个文档都具有所有文档字段,这显然可能导致比我们传统的 RMDBS 更大的数据库。
我曾经将折线和多边形存储为一系列索引点,并带有一个额外的字段表示每条线的顺序(我这样做是为了确保在使用 JavaScript 时的一致性,因此点并不总是以正确的方式存储命令)。是这样的:
polyline: {
[
point: [0,0],
order: 0
],
[
point: [0,1],
order: 1
]
}
而现在我使用:
polyline: {
type: 'LineString',
coordinates: [
[0,0],
[1,0]
]
}
我发现文档的大小有所改善,因为某些折线可以有多达 500 个点。
但是,我想知道将我的所有 Point
数据存储为 GeoJSON
有什么好处。我对文档大小的增加感到沮丧,例如:
loc: [1,0]
比
好很多loc: {
type: 'Point',
coordinates: [0,1]
}
因此会更容易使用。
我的问题是:
将点存储为 GeoJSON
对象而不是 2 点数组是否更好/推荐?
我考虑过的是:
lng, lat
格式的每一组坐标,而不是坚持 lat, lng
点,前者用于我的所有其他位置功能。</li>$geoWithin
或 $geoIntersects
,我不需要先将其转换为 GeoJSON 再使用它作为 查询
参数。我不确定的是:
loc: [x,y]
的支持2d
2dsphere
的任何索引优势
GeoJSON
添加到 MongoDB 是否可能导致需要上述一致性。我宁愿在我的数据仍可管理的情况下迁移到 GeoJSON
,也不愿在未来承受很大压力时切换。
我能否请一个彻底(即使是稍微)深思熟虑的答案。我不会很快选择正确的答案,所以我可以评估任何答案。
我也不确定 SO 是否是提出问题的正确位置,所以如果 DBA 是更合适的位置,我会将问题移到那里。我之所以选择 SO,是因为这里有很多与 MongoDB 相关的事件。
最佳答案
我建议使用新的 GeoJSON 格式。虽然我不认为有任何关于放弃对旧格式的支持的公告,但他们将其称为旧格式这一事实应该表明了他们的观点。
使用 2dsphere 而不是 2d 有一些索引优势。
另一件需要注意的重要事情是,您需要确保所使用的索引支持您使用的查询。例如,如果您使用 2dsphere,则不能使用 $box 查询,因为它不会被索引 - 但是 mongo 不会警告您 - 结果只会执行表扫描,并且会非常慢!
Mongo provide a compatibility chart of which queries can be used with which index
关于mongodb - GeoJSON 和 MongoDB : Is it worth it to store points as GeoJSON. 点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16128851/
为什么这不返回每个社区(边界框)中的点数? import geopandas as gpd def radius(points_neighbour, points_center, new_field_
嘿! 我有一张图片,我想在该图片上选择一个点并告诉它应该变换到哪个坐标。我想为一些数字点做这个。当我完成时,整个图像会发生变化,因此会考虑局部性。 最重要的是,我可以选择任意多的点,并且所选的点会转换
我有代码: class Point3D{ protected: float x; float y; float z; public:
我正在开发我的第一个 Spring Boot + Spring Data JPA + Hibernate 5,在 PostgreSQL 上工作数据库。 我在尝试映射具有 point 作为数据类型的字段
当我尝试编译这个简单的代码时,我在构造函数中遇到了两个错误:“类型值不能用作默认参数”我该如何解决这个问题? public class PointerArgs { public P
当我尝试编译这个简单的代码时,我在构造函数中遇到了两个错误:“类型值不能用作默认参数”我该如何解决这个问题? public class PointerArgs { public P
目前我正在实现一项提供集体旅行的交通服务,但我遇到了一个问题: 假设我在下图中得到了点 G = {A,B,C,D,F,R,W} =>。 当用户选择 from(A) -> to(W) 时,它们之间有点:
我有一个名为 Shop 的实体,它有一个名为 Position 的 DBGeorgpraphy 列 数据库中的示例商店的位置值为 POINT (145.034242 -37.825519) 我正在尝试
我看了几个类似的帖子,但我要么不明白他们提供的是什么,要么他们似乎不适用。我是新来的,我会尽力遵守规则。 我们在类(class)的最后 2 周学习 c++,期末学习 40 小时 :),所以我是初学者。
我正在使用 tf2 将点从源帧转换为目标帧。下面是代码片段: import tf2_ros import tf2_geometry_msgs transform = tf_buffer.lookup_
我需要找到一种算法,根据给定的一组大小为 n 的点 S 计算凸包。我知道 S 正好有 6 个点 构成了凸包。 最好和最有效的方法是什么? 我想从 S 生成所有可能的点组合(这将是 n 选择 6 个点)
我有一个在屏幕坐标中的 CGPoint。我还有一个应用了变换矩阵(缩放、旋转和平移)的 CALayer。 如何将屏幕坐标中的点转换为图层的局部坐标? 最佳答案 CALayer 有执行此操作的方法,请在
我正在创建自定义控件,它将从点列表(或数组)中绘制形状。我已经完成了基本的绘图功能,但现在我正在为 Visual Studio 中的设计时支持而苦苦挣扎。 我创建了两个属性: private Poin
此函数是从“JavaScript:权威指南”复制的,但由于某种原因它不起作用... **points.dist = function () { ^ ReferenceError: 点未定义**我对此很
我有一个像这样的自定义适配器: private List items = new ArrayList<>(); private Context context; public UserSpinnerA
代码: UPDATE tbl_name SET points = points + 1 WHERE 'GAME 1' LIKE "%Vikes%" GAME 1 列包含包含 Vikes
我有一个点。我正在尝试将 x 作为 int。如果我使用 Point.x,我将得到 x 作为 int。但我的印象是我应该尽可能使用 setter/getter ( Why use getters and
我正在开发一个小型信誉系统,但遇到了一个问题。 因此,在我的示例中,我想为 4 种不同类型的用户创建一个图片网站;我们称他们为:业余、好、非常好、专业。 每个用户可以上传一张图片,这张图片可以被其他用
我有一个关于事件形状模型的问题。我正在使用 T. Coots 的论文(可以找到 here 。) 我已经完成了所有初始步骤(Procrustes 分析计算平均形状,PCA 减少尺寸)但仍停留在拟合上。
Android moving Image one point (0,0) to another point (30,400). using animation or normal looping co
我是一名优秀的程序员,十分优秀!