gpt4 book ai didi

mongodb - 是否有支持地理空间查询的图形文档数据库?

转载 作者:搜寻专家 更新时间:2023-10-30 23:03:55 27 4
gpt4 key购买 nike

这是我需要的概要:

  • 图形数据库
  • 每个节点都是一个文档;将有数百种类型的节点;这数百种类型中的每一种都有自己一致的架构。
  • 可以扩展到数十亿个节点
  • 每个节点除了节点之间的边还有一个(lat,lng)坐标
  • 我想使用 (lat,lng) 作为分片键,这样它就可以扩展到一个大的分片复制集群。约 95% 的边缘遍历将发生在附近的(纬度、经度)位置。
  • 我希望能够发出地理+文档查询。例如“显示所有匹配此查询的图节点/文档 { ... } 按距 (lat_0, lng_0) 的距离排序”
  • 我想要有据可查、拥有活跃的开发者社区、推荐用于生产用途并且可能会存在多年的东西。

以下是现有数据库的问题:

  • MongoDB:不支持图形,不连接
  • Neo4j:无分片
  • OrientDB:没有地理空间索引
  • ArangoDB:可以进行 WITHIN 查询,但不能有额外的查询子句(例如 MongoDB 的 geoNear 有一个查询参数)

有什么适合我的用例吗?

最佳答案

你想要一只 unicorn 和一台可以打印无限数量的 100 美元钞票的机器吗?哈哈哈哈....

好的,但说真的,你的任务很艰巨。您将需要一个将其中一些东西混合在一起的自定义系统。首先,正如您所观察到的,实际上不存在“图形/文档”数据库这样的东西。

作为系统研究的一般领域,许多人正在研究混合系统。一个例子是您在 neo4j 中维护您的图形结构,并且 neo4j 中节点的 ID 指向 MongoDB 中文档的标识符。这样,您将拥有一个图形/文档数据库,但它实际上是两个数据库。这种混合系统充满了权衡。首先,跨两个系统编写查询将非常困难。对于两个,您将在它们之间引入数据依赖性,这样在不更改文档的情况下更新图形结构可能并不容易,反之亦然。

对于非常严格的性能要求,混合系统有时是唯一的选择。但作为一个经验法则,每 100 次你看到有人说他们需要这样的解决方案,可能有 80 次他们最好只选择一个数据库,然后接受它为他们提供的优缺点。技术最终是关于选择、优点和缺点,以及学会接受你所选择的东西。 :)

为了简要回答您提出的问题,不,没有任何东西可以完成所有这些工作。我建议您与可以深入探索您的需求的架构师或顾问合作,并就哪种架构最适合您的大部分需求提出建议,平衡简单性和成本。这既是一门艺术,也是一门科学。

关于mongodb - 是否有支持地理空间查询的图形文档数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28861116/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com