【问题标题】:When querying database is it possible to remove repetitive data fields?查询数据库时是否可以删除重复的数据字段?
【发布时间】:2021-07-14 18:42:33
【问题描述】:

我有一个通用集合recipes,我在其中保存了我的数据库中的所有食谱。

现在,因为我试图为每个用户提供更量身定制的食谱,所以我有相同食谱的多种变体(大部分成分相同,但数量不同)。

假设用户搜索超过 400 卡路里的“Jerk chicken”食谱,我有这 3 个文档 - 其中 2 个具有相同的 parentID,这意味着它是相同的食谱,我不想显示无数次。

  {name: "Jerk with rice", ingredients: {}, calories: 400, parentId: 234 }
  {name: "Jerk with rice", ingredients: {}, calories: 410, parentId: 234 }
  {name: "Jerk with rice", ingredients: {}, calories: 410, parentId: 200 }

有没有一种方法可以让我从后端查询“如果已查询具有相同 parentID 的项目,则不要再次请求”

我知道我可以使用 .limit(1) 但这只会得到我拥有的 2 个食谱中的 1 个。

我想过制作原始食谱集合,并将变体存储在子集合中,但我也不知道这是否可行。

【问题讨论】:

  • 此问题需要有关您的数据存储的更多信息。
  • 这只是食谱集合,每个文档都是不同的食谱,还是您需要任何其他信息?

标签: javascript reactjs database google-cloud-firestore


【解决方案1】:

数据库在这里不能做很多事情。 parentID 是纯应用程序逻辑,我看不到在查询中捕获“parentID 不在结果集中的位置”的方法。

您可以考虑更改数据模型以允许查询,但听起来您想要的内容将非常动态,并且可能超出 Firestore 的查询功能。如果此类搜索是您应用的用例,请考虑使用专用搜索引擎,例如 Algolia

【讨论】:

    猜你喜欢
    • 2011-09-13
    • 2015-07-02
    • 1970-01-01
    • 1970-01-01
    • 2012-11-28
    • 2021-09-16
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    相关资源
    最近更新 更多