Javascript Firebase,如何在日期范围内按键排序
我已在firebase实时数据库中设置数据,如下所示: 钥匙{ 创建日期, 人气 评级 作者} 能否检索以下问题的答案:Javascript Firebase,如何在日期范围内按键排序,javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,我已在firebase实时数据库中设置数据,如下所示: 钥匙{ 创建日期, 人气 评级 作者} 能否检索以下问题的答案: 就受欢迎程度而言,上个月排名前50的游戏在哪里 本周排名最低的比赛在哪里 今天收视率最高的游戏是什么 回答一个可能会回答另一个,但我确信我把它们都放进去了。 所有这些都要求你考虑多个属性。由于Firebase实时数据库只能对单个属性进行排序/筛选,因此在不修改数据模型的情况下无法执行这些操作。要想获得一本好的入门书,请在这里阅读我的答案: 在这种情况下,每个节点需要三个额外属
回答一个可能会回答另一个,但我确信我把它们都放进去了。 所有这些都要求你考虑多个属性。由于Firebase实时数据库只能对单个属性进行排序/筛选,因此在不修改数据模型的情况下无法执行这些操作。要想获得一本好的入门书,请在这里阅读我的答案: 在这种情况下,每个节点需要三个额外属性:
“月流行度”:“201812\u 125”
(如果流行度为125)“每周评级”:“2018w51\u 4”
“day_rating”:“20181225_4”
ref.orderByChild("month_popularity").startAt("201812_").endAt("201812~")
<> > <代码> ~只是ASCII中的代码> > <代码>后的一个字符,确保我们在本月之后停止返回结果。 < P>所有这些都要求您考虑多个属性。由于Firebase实时数据库只能对单个属性进行排序/筛选,因此在不修改数据模型的情况下无法执行这些操作。要想获得一本好的入门书,请在这里阅读我的答案: 在这种情况下,每个节点需要三个额外属性:
“月流行度”:“201812\u 125”
(如果流行度为125)“每周评级”:“2018w51\u 4”
“day_rating”:“20181225_4”
ref.orderByChild("month_popularity").startAt("201812_").endAt("201812~")
在ASCII中,
~
只是\uu
后面的一个字符,确保我们不再返回本月的结果。您好,您应该参考此链接,它将为您提供答案。但这是Firestore而不是实时数据库,对吗?不,这是实时数据库。所以看了之后,我仍然不知道如何通过Firestore将查询与多个键结合起来。我看到收视率被重新调整,但不是在一定的时间范围内。此外,我更喜欢实时数据库而不是Firestore的答案。(firebase中有2种不同的产品)在我写了下面的答案后,我意识到您可能正在寻找聚合查询,因此数据库确定(例如)所有评级的平均值的查询。这并没有内置到Firebase中(既没有内置到Realtime中,也没有内置到Firestore中)。您必须读取间隔的所有数据并计算客户端,或者必须将聚合值存储在数据库中并在每次写入时更新。您好,您应该参考此链接,它将为您提供答案。但这是Firestore而不是实时数据库,对吗?不,这是实时数据库。所以看了之后,我仍然不知道如何通过Firestore将查询与多个键结合起来。我看到收视率被重新调整,但不是在一定的时间范围内。此外,我更喜欢实时数据库而不是Firestore的答案。(firebase中有2种不同的产品)在我写了下面的答案后,我意识到您可能正在寻找聚合查询,因此数据库确定(例如)所有评级的平均值的查询。这并没有内置到Firebase中(既没有内置到Realtime中,也没有内置到Firestore中)。您必须读取间隔的所有数据并计算客户端,或者必须将聚合值存储在数据库中,并在每次写入时更新它们。谢谢Frank!这真的很有帮助。我在数据库中已经有了聚合,所以这对我来说很好。Fijne kerst;)如果我想让它起作用,我需要在我的数字前加上0,这是对的吗?例如,201812\u 20将在2018\u 100之后排序?或者这不是那样的吗?例如,我可以将上限设为10亿,然后使用201812亿20和201812亿100ah,是的,很好。我忘了那个。您确实需要使用0
s将数字填充到您的案例所需的最大长度。谢谢!到目前为止还不错。我使用firebase越多,效果越好。喜欢。谢谢你,弗兰克!这真的很有帮助。我在数据库中已经有了聚合,所以这对我来说很好。Fijne kerst;)如果我想让它起作用,我需要在我的数字前加上0,这是对的吗?例如,201812\u 20将在2018\u 100之后排序?或者这不是那样的吗?例如,我可以将上限设为10亿,然后使用201812亿20和201812亿100ah,是的,很好。我忘了那个。您确实需要使用0
s将数字填充到您的案例所需的最大长度。谢谢!到目前为止还不错。我使用firebase越多,效果越好。我喜欢。