2017-04-06 87 views
0

现在我拥有带有MongoDB地理索引的Meteor应用程序。通过graph.cool和Algolia订阅Apollo

而且我用这种发布/订阅的:

Meteor.publish('items', function itemsPublication(NELat, NELong, SWLat, SWLong) { 

    return Items.find({ 
    $and: [ 
     { 
      'till': { 
       $gte: new Date() 
      } 
     }, 
     { 
      'o': { $geoWithin: { $box: [ [ SWLong,SWLat], [ NELong, NELat] ] } } 
     } 

    ] 
    }, { 
    fields: { 
     o: 1, 
     t: 1, 
    } 
    }) 
}) 

我添加一些指标,例如:

Item._ensureIndex({ 
    'till':1, 'o': '2dsphere' 
}) 

一切工作正常...

的主要问题是:是否可以将Meteor pub/sub + MongoDB地理索引更改为Apollo subs + graph.cool作为后端+ Algolia超级快速地理搜索?

我需要真正的反应没有轮询或其他什么东西......

回答

2

Graphcool目前本身不支持空间查询。出于这个原因,您将无法从Meteor获得您习惯的反应式体验,并且Graphcool支持其他数据类型。我们对此有一个公开的功能要求,当合并Graphcool将在这方面与阿波罗相提并论。

这就是说,这里是你如何能实现与Algolia一个解决办法,而你等待的原生支持:

1)建立Algolia集成了地理查询,如这里所描述https://www.graph.cool/docs/tutorials/algolia-auto-syncing-for-graphql-backends-aroozee9zu/#algolia-geosearch

2)建立GraphQL订阅监听你有兴趣

3)当接收到的事件模型创建,更新,删除事件,查询Algolia指数以获得最新的结果

+0

感谢您的回复... – none

+0

@sorenbs是否有任何时间估计对地理查询的本机支持何时可用? :) –

+0

@LucèBrùlè我们还没有具体的时间表。请订阅此问题的更新https://github.com/graphcool/feature-requests/issues/28 – sorenbs