【问题标题】:Firestore: Join one document with another list documentFirestore:将一个文档与另一个列表文档连接起来
【发布时间】:2021-01-11 06:34:26
【问题描述】:

我一直在使用 firestore,我正在尝试在两个文档之间进行查询,这就是场景:

  1. 我有一个名为 user 的文档,它包含 name 和 rate 属性 例如:user = {name: 'homer Simpson', rate 4.5}
  2. 我有一个名为 events 的文档,它包含 idUser、名称、日期(时间戳)、状态 例如:事件 = {名称:'class one',日期:'2020 年 9 月 25 日上午 10:00:00 UTC-5',idUser:'1345648fdsfds',状态:'ACTIVE'}

一个用户可以有多个事件

我想获得 20 个满足以下条件的用户: 一种。他们应该在今天和接下来的两周之间举办活动 湾。它们应该按价格排序

我一直在尝试对此进行查询,但实际上我无法做到,也许有人可以告诉我该怎么做,或者给一些想法。

谢谢。

【问题讨论】:

    标签: angular firebase google-cloud-firestore


    【解决方案1】:

    Firestore 不提供任何类似 SQL 的联接。您一次只能查询一个集合。如果需要加入,则需要执行额外的查询以从另一个集合中获取匹配的文档。

    因此,在 NoSQL 数据库中,为了减少查询次数,通常会在集合之间复制数据。缺点是您必须在数据更改时执行多次更新。您必须决定要采用哪种方法。

    【讨论】:

    • 谢谢Doug 的回答,如果我将事件文档作为数组放入用户文档中,您认为有什么方法可以进行这种查询? 例如: user { name: 'homer simpson',rate 4.5, events: [{name: 'class one', date: 'September 25, 2020 at 10:00:00 AM UTC-5', state: 'ACTIVE'}]}
    • 如果您将所需的所有内容都放在一个文档中,那么可以。
    • 谢谢你,Doug,对不起,你能给我举个例子吗
    • 我建议您尝试自己的示例,看看它是否按您想要的方式工作。
    猜你喜欢
    • 2012-01-05
    • 1970-01-01
    • 1970-01-01
    • 2018-06-16
    • 1970-01-01
    • 2020-01-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多