阿波罗订阅graph.cool和Algolia

时间:2017-04-06 12:27:23

标签: meteor algolia apollo graphcool

现在我有Meo app和MongoDB地理索引。

我正在使用这种发布/订阅:

 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 个答案:

答案 0 :(得分:2)

Graphcool目前不支持空间查询。因此,您无法获得Meteor所习惯的反应体验,并且Graphcool支持其他数据类型。我们有一个开放的功能请求,当合并的Graphcool在这方面将与Apollo相提并论。

也就是说,在等待本机支持的同时,如何实现Algolia的解决方法:

1)为地理查询设置Algolia Integration,如此处所述https://www.graph.cool/docs/tutorials/algolia-auto-syncing-for-graphql-backends-aroozee9zu/#algolia-geosearch

2)设置一个GraphQL订阅,监听您感兴趣的模型的创建,更新,删除事件

3)收到事件后,查询Algolia索引以获取最新结果

答案 1 :(得分:1)

您可以查看apollo-link-algolia直接从客户端使用Apollo的Algolia服务。这个包是 data <- data.frame(matrix(c("01.01.2015",50, "01.02.2015",39, "01.03.2015",2, "01.04.2015",3, "01.05.2015",1, "02.01.2015",1, "02.02.2015",1, "02.03.2015",1 ), ncol = 2, byrow = T)) data$X1 <- as.Date(data$X1, format = "%m.%d.%Y") data$X1 <- as.Date(format.Date(data$X1, format = "%m/%d/%Y"), format = "%m/%d/%Y") str(data) 的简单包装器。 如果要使用它来执行地理查询,就像在GraphQL中创建以下查询一样简单:

algoliasearch-helper-js