首页 > 解决方案 > 忽略 Firestore 中的 DocID

问题描述

我有一个简单的查询,可以在与帖子相关的帖子下推荐用户。

await this.$fireStore.collection('posts')
.limit(6).where('tags', 'array-contains', this.post.tags[0]).get().then(querySnapshot => {

问题是这也读出了帖子本身(因为它也包含标签),有没有什么方法可以查询没有特定 DocID 的帖子,而不会浪费 Where ergo 需要一个完整的新查询?

标签: javascriptfirebasegoogle-cloud-firestore

解决方案


Firestore 不提供使用不等式(即不等于)进行查询的可能性,例如,请参阅此 SO 帖子:Firestore:如何使用不等式/不等于执行查询

我了解您希望获得最多 6 个“兄弟”帖子。您可以进行相同的查询,但限制为 7 个文档,并在您的前端过滤结果:

通过遍历文档列表并将其 ID 与当前文档 ID 进行比较,您将遇到两种情况:

  1. 当前文档在查询返回的 7 个文档中:将其从列表中删除
  2. 当前文档不在查询返回的 7 个文档中:随机删除一个文档。

推荐阅读