现在我有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超快速地理搜索?
我需要真正的反应,不需要民意调查......
答案 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