我知道在数组中查询不存在的值将会非常困难,但有没有一种方法可以不这样做而实现呢?
以下是我的情况:我有一个订阅服务,用户可以选择关注特定的艺术家。在我的后端,这将创建一个订阅文档,其中包含他们的关注者ID、他们想要关注的艺术家的ID(称为artistId)以及一个名为pushed的数组。艺术家可以添加新作品,并在未来通知每个关注者播放特定的歌曲。我希望跟踪已经被推送到哪些关注者,并在前述的pushed数组中进行。我需要一种方法来查找哪些关注者已经被推送了一个特定的作品。
我考虑了合并两个查询,但我不确定是否可能。类似于:
1. db.collection('subscriptions').where('artistId', '==', artistId) 2. db.collection('subscriptions').where('artistId', '==', artistId).where('pushed', 'array-contains', releaseId)
然后取两个查询结果的交集并从第一个查询结果中减去以获取还没有被推送特定作品的关注者。
这种方法可行吗?或者有更好的方法吗?
以下是我的情况:我有一个订阅服务,用户可以选择关注特定的艺术家。在我的后端,这将创建一个订阅文档,其中包含他们的关注者ID、他们想要关注的艺术家的ID(称为artistId)以及一个名为pushed的数组。艺术家可以添加新作品,并在未来通知每个关注者播放特定的歌曲。我希望跟踪已经被推送到哪些关注者,并在前述的pushed数组中进行。我需要一种方法来查找哪些关注者已经被推送了一个特定的作品。
我考虑了合并两个查询,但我不确定是否可能。类似于:
1. db.collection('subscriptions').where('artistId', '==', artistId) 2. db.collection('subscriptions').where('artistId', '==', artistId).where('pushed', 'array-contains', releaseId)
然后取两个查询结果的交集并从第一个查询结果中减去以获取还没有被推送特定作品的关注者。
这种方法可行吗?或者有更好的方法吗?
array-contains
。 - Frank van Puffelen