【发布时间】:2020-01-05 00:06:13
【问题描述】:
我知道通过数组中不存在的值进行查询会非常困难,但是有没有办法做到这一点而不完全这样做?
这是我的场景 - 我有一个基于订阅的服务,人们可以选择加入并“关注”特定的艺术家。在我的后端,这将创建一个订阅文档,其中包含他们的 followerId、他们想要关注的艺术家的 id(称为 artistId)和一个称为 push 的数组。艺术家可以添加新版本,然后在未来向每个关注者发送特定歌曲的通知。我想跟踪哪个追随者被推送了哪个版本,这在前面提到的推送数组中完成。我需要一种方法来查找哪些追随者已经被推送到特定版本,所以......
我正在考虑合并两个查询,但我不确定是否可行。比如:
db.collection('subscriptions').where('artistId', '==', artistId)db.collection('subscriptions').where('artistId', '==', artistId).where('pushed', 'array-contains', releaseId)
然后取两个查询结果的交集,减去第一个查询,得到未推送特定版本的关注者。
这可能吗?还是有更好的办法?
【问题讨论】:
标签: firebase google-cloud-firestore