graph.cool 和 Algolia 的 Apollo 订阅
Apollo subscription with graph.cool and Algolia
现在我有了带有 MongoDB 地理索引的 Meteor 应用程序。
我正在使用这种 pub/sub:
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 超快速地理搜索?
我需要没有轮询或其他东西的真正反应...
Graphcool 目前本身不支持空间查询。出于这个原因,您将无法从 Meteor 和 Graphcool 支持其他数据类型中获得您习惯的反应式体验。我们对此有一个开放的功能请求,合并后 Graphcool 将在这方面与 Apollo 相提并论。
也就是说,在等待本机支持的同时,您可以通过以下方式使用 Algolia 实施变通方法:
1) 为此处描述的地理查询设置 Algolia 集成 https://www.graph.cool/docs/tutorials/algolia-auto-syncing-for-graphql-backends-aroozee9zu/#algolia-geosearch
2) 设置一个 GraphQL 订阅监听您感兴趣的模型的创建、更新、删除事件
3) 收到事件后,查询Algolia索引得到最新结果
您可能想要查看 apollo-link-algolia 以直接从客户端将 Algolia 服务与 Apollo 结合使用。这个包是 algoliasearch-helper-js
的简单包装器。
如果你想用它来执行地理查询,就像在 GraphQL 中创建以下查询一样简单:
const LOCATIONS_QUERY = gql`
query LocationsQuery {
locationsInRadius @algolia(index: "dev_LOCATIONS", aroundLatLng: "40.71, -74.01", aroundRadius: 1000)
}
`
现在我有了带有 MongoDB 地理索引的 Meteor 应用程序。
我正在使用这种 pub/sub:
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 超快速地理搜索?
我需要没有轮询或其他东西的真正反应...
Graphcool 目前本身不支持空间查询。出于这个原因,您将无法从 Meteor 和 Graphcool 支持其他数据类型中获得您习惯的反应式体验。我们对此有一个开放的功能请求,合并后 Graphcool 将在这方面与 Apollo 相提并论。
也就是说,在等待本机支持的同时,您可以通过以下方式使用 Algolia 实施变通方法:
1) 为此处描述的地理查询设置 Algolia 集成 https://www.graph.cool/docs/tutorials/algolia-auto-syncing-for-graphql-backends-aroozee9zu/#algolia-geosearch
2) 设置一个 GraphQL 订阅监听您感兴趣的模型的创建、更新、删除事件
3) 收到事件后,查询Algolia索引得到最新结果
您可能想要查看 apollo-link-algolia 以直接从客户端将 Algolia 服务与 Apollo 结合使用。这个包是 algoliasearch-helper-js
的简单包装器。
如果你想用它来执行地理查询,就像在 GraphQL 中创建以下查询一样简单:
const LOCATIONS_QUERY = gql`
query LocationsQuery {
locationsInRadius @algolia(index: "dev_LOCATIONS", aroundLatLng: "40.71, -74.01", aroundRadius: 1000)
}
`