MongoDB -如何使用GEO和地址的最佳方式
MongoDB - how to use the best way for GEO and adresses?
我想找到解决问题的最佳方法。我不知道在我的情况下使用MongoDB的最佳方法。
我目前在Meteor JS中开发了一个项目,并且(想要)使用mongoDB。在网站上有一个输入字段,其中有自动完成。
(仅针对德国))函数应该是这样的:
你可以输入你的邮政编码,它会找到自动完成与城市在其中。如。"10789年柏林"
你也可以在里面输入"Berlin"或一条街,或者——如果你想的话——你的当前位置由浏览器检测。
在这个时候,我有一个MYSQL的大数据库,有数百万的地理数据。我有数以百万计的地址与邮政编码,城市和地理数据。我想用它来自动完成数据,并在输入地址后找到GEO代码。
我的问题是现在如何构建我的mongodb集合。所有信息都在一个集合中?还是我必须把它分成多个集合?例1邮编、城市及街道(含街道号码?)资料收集。
像这样:
streets:
{
streetname : 'Sandsteinweg',
geocode : 'GEOCODE',
zip : 12349
}
plz : {
plz : 12349,
geocode: 'GEOCODE',
city : berlin
}
citys :
{
name : Berlin,
geocode : 'GEOCODE',
bundesland : 'Berlin'
}
对于最好的方法有什么想法或建议吗?
顺便说一句:我不想使用外部服务。只有当街道名称不在我的集合中,并且我必须将其添加到尚未在我的集合中新的地理信息中时,才会使用外部服务。这样做与MongoDB它听起来像你想使用"文本搜索"或以其他方式使用搜索引擎。这是"自动建议"(而不是"自动完成")等操作的通常情况,因为在这种情况下会显示"相关匹配"。
因此,无论如何,您可能希望在同一个文档中有不同类型的字段。至少在MongoDB文本索引的情况下,这将是必须的情况,以及最简单的集成。在任何一种情况下,你的"搜索"都将在这些多个字段值上执行,并按照相关性的顺序返回结果。
很大程度上,你的问题似乎更多的是关于"自动建议"点,而不是GEO存储部分。有几个选项可用于"地理"数据,你可以在文档中找到它们。
然而,这里可能存在的冲突点是,每个集合只能有一个诸如2dSphere索引之类的东西。因此,需要对每个集合只有一个"GEO"数据系列的文档进行"键"。
但是你的集合文档有点"多态"也没有错,所以这是需要考虑的。
很难更详细地回答您当前的问题,因为主题相当广泛,如果没有您"缩小"到更具体的情况。我只在这里写这个,因为对于注释来说它太长了
- 后焦点更改为IE 11中的地址栏,而不是转移到表单中的下一个控件
- 在localhost Dev Box上测试JSONP请求的最佳方式
- 有条件更新d3.js力图中节点的最佳方法
- 使用正则表达式评估电子邮件地址时出现性能问题
- 跟踪用户点击Adsense广告的IP地址
- 为react组件传递道具的最佳方式
- 与运行长作业(javascript,node.js)的第三方API同步的最佳实践
- 将谷歌自动完成地址信息放在页面上,而不是表格中
- 让Webpack管理Quirky AMD定义的最佳方式
- 在承诺链中处理早期回报的最佳方式
- 将jQuery.ech()方法转换为本地JavaScript抽象的最佳方法是什么
- Angularjs 1.5.x本地化最佳实践
- 处理浮点错误的最佳方法是什么
- 在java中,通过谷歌获取地址的经度和纬度的最佳方式是什么
- 街道地址的最佳地理编码是什么
- 地址号码的最佳javascript正则表达式
- 最佳实践:在a元素和屏幕阅读器中加密电子邮件地址
- 在Javascript中连接地址的最佳方式
- MongoDB -如何使用GEO和地址的最佳方式
- 在meteor中更新用户电子邮件地址的最佳方法是什么?