javascript - 忽略 Firestore 中的 DocID
问题描述
我有一个简单的查询,可以在与帖子相关的帖子下推荐用户。
await this.$fireStore.collection('posts')
.limit(6).where('tags', 'array-contains', this.post.tags[0]).get().then(querySnapshot => {
问题是这也读出了帖子本身(因为它也包含标签),有没有什么方法可以查询没有特定 DocID 的帖子,而不会浪费 Where ergo 需要一个完整的新查询?
解决方案
Firestore 不提供使用不等式(即不等于)进行查询的可能性,例如,请参阅此 SO 帖子:Firestore:如何使用不等式/不等于执行查询
我了解您希望获得最多 6 个“兄弟”帖子。您可以进行相同的查询,但限制为 7 个文档,并在您的前端过滤结果:
通过遍历文档列表并将其 ID 与当前文档 ID 进行比较,您将遇到两种情况:
- 当前文档在查询返回的 7 个文档中:将其从列表中删除
- 当前文档不在查询返回的 7 个文档中:随机删除一个文档。
推荐阅读
- mysql - 在mysql中生成下一个员工代码的正确方法?
- git - 吉特![远程拒绝] master -> master(锁定失败)
- php - php:password_hash 和 password_verify 不起作用
- uwp - 如何知道图像是否显示
- javascript - 如何在选中的复选框上添加带有关联跨度的css?
- javascript - 使用 webpack 将 Vuetify 集成到 Vue CLI 应用程序中
- wpf - 在 mousedown 事件上从 3D 视口中删除 ContainerUIElement3D 后无法执行旋转
- firefox - 我可以让顶栏只出现在 Firefox 中的鼠标悬停上吗?
- mips - 当对两个大整数使用 mult 时,我如何从 mfhi 和 mflo 获得实际数字?
- azure-active-directory - Blazor WASM Azure AD 连接到 Microsoft Graph