SQL 中等效的 Firebase 加入、分组、聚合

Firebase Joining, Grouping, Aggregation Equivalent in SQL

我来自 SQL,第一次尝试使用 Firebase。这个查询可以用 Firebase 实现吗?

SELECT
    name,
    AVG(rating) as avgRating
FROM restaurants
JOIN reviews
    ON restaurants.ID = reviews.restaurantsID
GROUP BY restaurants.ID
ORDER BY avgRating;

如果是,您能否为 link 提供 SQL 人的 Firebase 博客、教程或高级课程? (最好是 Firebase for Web)

连接是所有 NoSQL 风格数据库的主要弱点。这源于它们的工作方式:查询只是直接读取 JSON 存储。 (这也赋予了它们优势:速度和可扩展性。)

如果您使用的是 Firebase 实时数据库,那么最好的方法是 denormalize your data 并执行两个查询。那看起来像这样:

firebase.db.ref("/path/to/ref").on("value", (snapshot) => {
  if(snapshot.val()){
    firebase.db.ref(`/second/ref/${snapshot.val().joinValue}`).on("value", (snapshot2) => {
      console.log(snapshot2.val()) // Do something
    }
  }
})

最近,Firebase 发布了新的 FireStore database,该新版本旨在解决实时版本的一些弱点。但是,我认为并没有专门解决连接问题(最终解决方案可能与我的示例类似。)

最后,我经常使用 Firebase,我怀疑他们可能正在使用受 GraphQL 启发的解决方案,这将是基于 SQL 的数据库的完整接口。我希望在接下来的 12 个月内下降。