【问题标题】:Modeling Firestore database建模 Firestore 数据库
【发布时间】:2020-12-16 17:52:22
【问题描述】:

我是 Firestore 和 NoSQL 的新手。我想创建书籍项目,其中每个书籍项目仅属于许多类别中的一个类别。在检索书籍项目时,我想要单独的每个类别的书籍项目。如何为数据库建模?

【问题讨论】:

  • 您至少尝试过吗?创建模型?
  • 我决定使用各种类别的子集合并将书添加到一个类别中。我希望每个类别中的 5 本书显示在我的主页上。这是一种有效的方法吗?如果我将书籍存储在书籍集合中,那么我必须对每个类别进行单独查询或过滤书籍并将这些书籍存储在我的商店中,不是吗?

标签: javascript reactjs google-cloud-firestore nosql


【解决方案1】:

您可以将所有图书项目放在一个集合中。每个项目都有一个“类别”字段。当您想要检索具有特定类别的书籍时,您可以使用 Firestore 的内置索引通过在查询末尾添加 .where() 方法来有效地仅检索特定类别的书籍。如果您只想检索该类别的特定数量的书籍,您可以在查询中使用 .limit() 方法。

如果您将条件链接到查询中,例如多个 .where() 或 .orderBy(),则需要向数据库添加自定义索引,以便它知道如何组织事物以及查看位置对于特定查询。您可以在 Firestore 控制台中管理这些索引,它位于“数据库”和“规则”选项卡旁边。

IMO 这个索引是关于 firestore 的最酷的事情。如果您的集合中有 100 万个文档,但您为该集合构建了一个仅返回三个文档的查询,那么它将与集合中仅有的三个文档一样快速且经济实惠。

有关索引的更多信息:https://firebase.google.com/docs/firestore/query-data/indexing

以及他们构建查询的指南:https://firebase.google.com/docs/firestore/query-data/queries

【讨论】:

    猜你喜欢
    • 2021-01-19
    • 2019-08-27
    • 2021-05-12
    • 1970-01-01
    • 2021-09-22
    • 2020-05-13
    • 2018-09-03
    • 2019-01-03
    • 2021-07-25
    相关资源
    最近更新 更多