在我的项目中,我们有一个名为 Trip 的实体。这次旅行有两点:起点和终点。开始和结束是带有一些附加属性的地理坐标,例如地址 atc。
我需要的是查询满足开始和结束搜索条件的所有行程。
喜欢
select from trips where start near 16,16 and finish near 18,20 where type = type
所以我的问题是:哪个数据库可以提供这样的功能?
我试过的
我探索了支持地理索引但不支持此用例的 mongodb。当前的解决方案将这些点存储为单独的文档,这些文档具有对旅行的引用。我们对开始和结束运行两个单独的查询,然后提取其相关行程的 ID,然后选择在开始和结束中都找到的行程 ID,最后返回行程集合。
在一个小样本上它工作得很好,但在一个更大的样本上它会变慢,就像用我的右手挠我的左耳一样。
所以我正在寻找更好的解决方案。
我知道 neo4j 及其空间插件,但我什至无法让它在 Windows 上运行。它会支持我们的用例吗?
还是有更好的解决方案?最好使用用 php 编写的对象映射器。