【问题标题】:can collectionGroup queries select all inner documents of a parent documentcollectionGroup 查询可以选择父文档的所有内部文档吗
【发布时间】:2020-05-12 19:35:35
【问题描述】:

使用最新的flutter版本和firestore,下面是我的数据库设计示例, 还有这个 ,

可以收集组, 获取“days”文档 ID 等于“2019-11-09”的所有“hours”

来自关系数据库家族,这很简单,但是我用 firestore-flutter 敲我的头,请帮助我实现这一点,或者我应该重新设计,这将是蹩脚的。

【问题讨论】:

    标签: android firebase flutter google-cloud-firestore


    【解决方案1】:

    不可能在集合组查询中如此具体。集合组查询将始终考虑具有相同名称的 所有 个集合。它不能专注于专门嵌套在另一个集合下的子集合。您可以做的是查询所有hours 集合的所有文档,无论它嵌套在哪里都可以。如果您需要将其缩小到特定日期,则需要为该天添加一个新字段,并过滤当天的所有小时文档。

    db.collectionGroup('hours').where('day', isEqualTo: 'whatever')
    

    【讨论】:

    • 这意味着查询整个数据库而不是仅查询父文档,这不是对性能的巨大影响吗?除了 collectionGroup,firestore 还提供其他解决方案吗?
    • Firestore 上的查询保证其性能仅取决于您获得的结果的数量/大小,而不取决于它们搜索的数据量。用队友的话来说:当您搜索我们的草垛时,性能仅取决于针的数量,而不取决于草垛的大小。
    • @FrankvanPuffelen 你能指导我找到任何文档或解释这个性能声明背后的技术,无法消化,甚至是干草和针的故事。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-18
    • 2017-02-28
    • 1970-01-01
    • 2021-12-21
    • 2014-08-27
    • 1970-01-01
    相关资源
    最近更新 更多