Google cloud firestore 阵列中的Firestore地质点

Google cloud firestore 阵列中的Firestore地质点,google-cloud-firestore,Google Cloud Firestore,我正在处理一个有趣的场景,我不确定它是否能工作,或者是否能很好地工作。在我目前的项目中,我正试图找到一种在firestore中使用地质点的有效方法。文档可以包含地质点字段的直截了当的方法非常简单,易于查询。但是,我必须为单个文档(文章)使用不同数量的地质点。这是因为特定内容可能需要在多个地理区域中可用 例如,一篇文章可能只需要在纽约、丹佛和西雅图提供。一般来说,如果我只想让这篇文章在西雅图发布,那么在每个位置使用一个地理点并按半径搜索是一项相当标准的任务,但现在它需要在另外两个地方发布 我目前看

我正在处理一个有趣的场景,我不确定它是否能工作,或者是否能很好地工作。在我目前的项目中,我正试图找到一种在firestore中使用地质点的有效方法。文档可以包含地质点字段的直截了当的方法非常简单,易于查询。但是,我必须为单个文档(文章)使用不同数量的地质点。这是因为特定内容可能需要在多个地理区域中可用

例如,一篇文章可能只需要在纽约、丹佛和西雅图提供。一般来说,如果我只想让这篇文章在西雅图发布,那么在每个位置使用一个地理点并按半径搜索是一项相当标准的任务,但现在它需要在另外两个地方发布

我目前看到的解决方案是使用阵列并填充地质点。该结构看起来像这样:

articleText (String),
sortTime (Timestamp),
tags (Array)
 - ['tagA','tagB','tagC','tagD'],
availableLocations (Array)
 - [(Geopoint), (Geopoint), (Geopoint), (Geopoint)]
然后执行查询以从特定的后期开始获取特定地质点10英里内的所有内容

我不知道的是,将地质点放在阵列中是否有效,或者应该避免使用其他数据结构

我曾考虑过为每个地质点复制一篇文章文档,但如果需要定义的位置超过少数,那么这种扩展性就不太好。我还考虑过创建一个“参考”集合,其中每个点都是一个文档,其中包含一篇文章的documentID,但这会导致阅读每个参考文档,然后阅读实际文档。实际上,一个内容读取两个文档,根据Firestore定价模型,这可能会变得昂贵,并且可能会不必要地降低速度

我是否以一种可以接受的方式处理这个问题?还有其他更有效的方法吗