如何在 BigQuery 中从 firestore 导出的数组中查找元素
Posted
技术标签:
【中文标题】如何在 BigQuery 中从 firestore 导出的数组中查找元素【英文标题】:how to find elements in an array exported from firestore in BigQuery 【发布时间】:2022-01-04 05:58:33 【问题描述】:我需要了解已售出的商品数量,因此我将我的 Firestore 数据导出到大查询 我在firestore中有集合,我有对象数组
我需要将森林数据导出到大查询
line_items
[
price:10,
qyt:2,
name:car
,
price:4,
qyt:1,
name:pen
,
]
我已经创建了 schema.json 并将类型添加为数组并导出集合数据
"name": "line_items",
"type": "array"
现在我正在尝试在 cloud.google 中编写查询以获取此结果
name |qty
car | 2
pen | 1
我的问题是我无法将我的对象数组转换为列,因此我可以获得已售出的商品数量
这就是数据在大查询中的样子,它没有显示为对象数组
【问题讨论】:
您可能没有取消嵌套数据。但它看起来像你的架构是错误的。您能否分享您遇到的错误以及出现在 bigquery 中的架构照片? 这是我的架构,我已将 line_items 定义为数组。 pasteboard.co/0jZLFeL8aqzU.png 错误是在 [2:19] 无法访问类型为 ARRAYmap
是 bigquery 中的 record
类型,因此您的架构不正确。
【参考方案1】:
在获取元素之前你必须UNNEST
一个数组
SELECT name, qty FROM your_dataset.your_table, UNNEST(line_items)
【讨论】:
这不起作用。无法识别的名称:数量 [2:8] line_items 是以 json 形式出现的,但我在创建视图时已将其定义为数组以上是关于如何在 BigQuery 中从 firestore 导出的数组中查找元素的主要内容,如果未能解决你的问题,请参考以下文章
Firestore如何在回收站视图中从firestore检索数据
如何在 Swift 中从 Cloud FireStore Firebase 访问特定字段
如何在 Flutter 中从 Firestore 订购数据,orderBy 订购不正确
如何在 PyCharm 的 pandas 数据框中从 BigQuery 读取数据