Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript MongoDB-如何使用地理位置和地址的最佳方式?_Javascript_Mongodb_Meteor_Mongodb Query - Fatal编程技术网

Javascript MongoDB-如何使用地理位置和地址的最佳方式?

Javascript MongoDB-如何使用地理位置和地址的最佳方式?,javascript,mongodb,meteor,mongodb-query,Javascript,Mongodb,Meteor,Mongodb Query,我想找到解决问题的最好办法。我不知道在我的情况下使用MongoDB的最佳方式 我目前在Meteor JS中开发了一个项目,并(希望)使用mongoDB。站点上有一个输入字段,其中包含自动完成 (就我而言,仅适用于德国) 函数应如下所示: streets: { streetname : 'Sandsteinweg', geocode : 'GEOCODE', zip : 12349 } plz : { plz : 12349, geocode: 'GEOC

我想找到解决问题的最好办法。我不知道在我的情况下使用MongoDB的最佳方式

我目前在Meteor JS中开发了一个项目,并(希望)使用mongoDB。站点上有一个输入字段,其中包含自动完成

(就我而言,仅适用于德国) 函数应如下所示:

streets:
{
    streetname : 'Sandsteinweg',
    geocode : 'GEOCODE',
    zip : 12349
}

plz : {
    plz : 12349,
    geocode: 'GEOCODE',
    city : berlin

}

citys :
{
    name : Berlin,
    geocode : 'GEOCODE',
    bundesland : 'Berlin'
}
你可以输入你的邮政编码,它会找到自动完成与城市在它。e、 g.“10789柏林”

你也可以在其中或街道上键入“Berlin”,或者——如果你愿意的话——通过浏览器检测你当前的位置

此时,我在MYSQL中拥有一个包含数百万地理数据的大型数据库。我有数以百万计的地址和邮政编码,城市和地理数据。我想用它来自动完成数据,并在键入地址后找到地理代码

我现在的问题是如何构建我的MongoDB集合。一个集合中的所有信息?还是我必须把它分成许多系列?e、 g.1邮政编码、城市和街道的收集(街道编号?)

大概是这样的:

streets:
{
    streetname : 'Sandsteinweg',
    geocode : 'GEOCODE',
    zip : 12349
}

plz : {
    plz : 12349,
    geocode: 'GEOCODE',
    city : berlin

}

citys :
{
    name : Berlin,
    geocode : 'GEOCODE',
    bundesland : 'Berlin'
}
有没有IDE或输入来实现这一点的最佳方法


顺便说一句:我不想使用外部服务。当街道名称不在我的收藏中时,外部服务正在使用中,我必须将其添加到新的地理信息中,这些信息还不在我的收藏中。

使用MongoDB执行此操作时,听起来您希望使用或使用搜索引擎。这是“自动建议”(与“自动完成”相反)等操作的常见情况,因为在这种情况下会显示“相关匹配”

因此,无论如何,您可能希望在同一文档中包含各种类型的字段。至少在MongoDB文本索引的情况下,这是必须的,也是最简单的集成。在这两种情况下,您的“搜索”将在这些多个字段值上执行,并按相关性顺序返回结果

在很大程度上,您的问题似乎更多地是关于“自动建议”这一点,而不是地理存储部分。“地理”数据有多个可用选项,您可以在中找到它们

然而,这里可能存在的冲突点是,每个集合只能有一次索引之类的内容。因此,需要对每个收集只有一系列“GEO”数据的文档进行“键入”

<> P>但是你的收藏文档也有点“多态”,所以要考虑。


如果你不“缩小”到更具体的案例,就很难更详细地回答你当前的问题,因为主题相当广泛。我真的只有这个,因为它太长了,无法发表评论。

感谢您抽出时间发表评论。我选择使用一个集合进行自动建议,并在我的项目中的其他区域使用多边形集合来检查邮政编码。。。你认为这种格式“searchAutoSugges:{geoCode:'geoCode',street:'mystreet3',zipCode:12331,city:Berlin,country:'Germany'}”会适合自动推荐吗?当这个文件充满数据时,是否不管最后的大型mongoDB对象是什么?(当所有可能的街道都有德国的街道号码时,这将是数百万份文档。)