Javascript 在特定FireStore集合中执行集合组查询

Javascript 在特定FireStore集合中执行集合组查询,javascript,firebase,react-native,google-cloud-firestore,Javascript,Firebase,React Native,Google Cloud Firestore,我有一个数据库结构如下(为了这个问题的目的简化): 我想做什么: 获取用户指定集合(项目)的所有用户的订单列表。 (请注意,“用户”文档的数量随着时间的推移而变化,子集合中的“订单”文档的数量也会变化。“项目”的数量恒定为10,因此我希望避免手动编码来处理每个项目) 换句话说。。。 用户应输入项目类型(例如项目A或项目B)。 此外,用户可以指定所需的城市(例如巴黎)。 现在我想查询FireStore,以查找具有匹配城市的特定商品类型的所有订单 如何以最短的步骤(最少的查询)完成此操作 我能用这个

我有一个数据库结构如下(为了这个问题的目的简化):

我想做什么: 获取用户指定集合(项目)的所有用户的订单列表。 (请注意,“用户”文档的数量随着时间的推移而变化,子集合中的“订单”文档的数量也会变化。“项目”的数量恒定为10,因此我希望避免手动编码来处理每个项目)

换句话说。。。 用户应输入项目类型(例如项目A或项目B)。 此外,用户可以指定所需的城市(例如巴黎)。 现在我想查询FireStore,以查找具有匹配城市的特定商品类型的所有订单

如何以最短的步骤(最少的查询)完成此操作


我能用这个吗?我试过玩弄这个,但我不知道我是如何理解的。如何将查询限制为在指定集合(例如项目a)上运行,而不是在所有可用集合(项目a、项目B)上运行。我是否需要为每个项目(例如订单项目A)重命名不同的子集合,以便有选择地使用集合组查询?

当前在所有特定名称集合上运行的集合组查询。它们不能仅在特定路径中的名称集合上运行


因此,如果要在
项目A
下的订单上运行它们,则必须为这些子集合指定一个唯一的名称,如当前在所有特定名称集合上运行的
项目A(u)订单

集合组查询。它们不能仅在特定路径中的名称集合上运行


因此,如果要在
项目A
下的订单上运行它们,则必须为这些子集合指定一个唯一的名称,如
项目A(订单

此问题听起来与您的另一个问题基本相同:它们有相似的背景,但我相信不同。我最初需要这样做,但在收集组查询方面遇到了麻烦,因此决定转向(另一篇文章)开始时(看起来)更简单的内容。这篇文章是关于如何限制集合组查询范围的特定查询。请你再看一看,看能不能再提些建议。提前谢谢。我没有什么要补充的。我对另一个问题的回答是完整的。谢谢你的时间。你的回答当然解决了另一个帖子,但我觉得这个解决方案(以那种形式)不足以解决这个问题。具体来说,“如何限制查询在指定集合(例如,项_a)上运行,而不是在所有可用集合(项_a、项_B)上运行?”当然,您不能。正如我在另一个答案中所建议的,您可以向文档中添加可用于收集组筛选的字段。这个问题听起来与您的另一个问题基本相同:它们具有相似的背景,但我认为不同。我最初需要这样做,但在收集组查询方面遇到了麻烦,因此决定转向(另一篇文章)开始时(看起来)更简单的内容。这篇文章是关于如何限制集合组查询范围的特定查询。请你再看一看,看能不能再提些建议。提前谢谢。我没有什么要补充的。我对另一个问题的回答是完整的。谢谢你的时间。你的回答当然解决了另一个帖子,但我觉得这个解决方案(以那种形式)不足以解决这个问题。具体来说,“如何限制查询在指定集合(例如,项_a)上运行,而不是在所有可用集合(项_a、项_B)上运行?”当然,您不能。正如我在另一个回答中所建议的,您可以向文档中添加可用于收集组筛选的字段。非常感谢您的评论。我现在已经将我的所有子集合重命名为唯一可识别的,并且一切正常。但我现在面临一个过滤我的集合组查询的问题。由于这个问题在这里的评论中看起来很混乱,我也发了一篇新的帖子:你能看看你是否能帮上忙吗?提前感谢。非常感谢您的评论。我现在已经将我的所有子集合重命名为唯一可识别的,并且一切正常。但我现在面临一个过滤我的集合组查询的问题。由于这个问题在这里的评论中看起来很混乱,我也发了一篇新的帖子:你能看看你是否能帮上忙吗?提前谢谢。
Collection: item_A
    -> Document: params = {someParameter: "value"}
    -> Document: user_01
        -> Sub-collection: orders
            -> Document: order_AA = {type: "A1", address: {pincode: "000000", city:"Paris"}
            -> Document: order_AB = {type: "A2", address: {pincode: "111111", city:"London"}
            ...
    -> Document: user_02
        -> Sub-collection: orders
            -> Document: order_AC = {type: "A1", address: {pincode: "222222", city:"Berlin"}
            -> Document: order_AD = {type: "A1", address: {pincode: "333333", city:"Paris"}
            ...

Collection: item_B
    -> Document: params = {someParameter: "value"}
    -> Document: user_01
        -> Sub-collection: orders
            -> Document: order_BA = {type: "B1", address: {pincode: "000000", city:"Paris"}
            -> Document: order_BB = {type: "B2", address: {pincode: "111111", city:"London"}
            ...
    -> Document: user_02
        -> Sub-collection: orders
            -> Document: order_BC = {type: "B1", address: {pincode: "222222", city:"Berlin"}
            -> Document: order_BD = {type: "B2", address: {pincode: "333333", city:"Paris"}
            ...