小编Tom*_*yBs的帖子

Google Bigquery,基于 JSON 项的 WHERE 子句

我有一个来自 firestore 数据库的 bigquery 导入,我想在其中查询文档中的特定字段。这是通过 firestore-bigquery 扩展填充的,文档数据存储为 JSON 字符串。

我试图在我的查询中使用 WHERE 子句,该子句使用 JSON 数据中的字段之一。但是,这似乎不起作用。

我的查询如下:

SELECT json_extract(data,'$.title') as title,p
FROM `table`  
left join unnest(json_extract_array(data, '$.tags')) as p
where json_extract(data,'$.title') = 'technology'
Run Code Online (Sandbox Code Playgroud)

data是 JSON 对象,title是所有项目的属性。上面的查询将运行,但会产生“无结果”(当它们出现在表格预览中时,肯定有相关标题的结果)。

我也尝试过使用WHERE title = 'technology',但这会返回一个错误,该错误title是一个无法识别的字段(因此是 json_extract)。

根据我的研究,这应该可以作为标准的 SQL JSON 查询,但似乎不适用于 Bigquery。有谁知道解决这个问题的方法?

我能想到的是,如果我将结果放在另一个表中,但我不知道这是否是一个可行的解决方案,因为数据是通过更新时的扩展更新的,所以我也需要不断刷新我的第二个表.

编辑 我想知道配置视图是否有助于解决这个问题?虽然最终我想根据不同的参数查询这个,这里的文档https://cloud.google.com/bigquery/docs/views建议你不能在视图中引用查询参数

google-bigquery

3
推荐指数
1
解决办法
295
查看次数

如何跳过没有列表中的元组?

我想过滤掉列表中只包含None-elements的所有元组,所以对于这个列表

listobj = [(None, None, None, None), (None, None, None, None), (None, None, None, None),(None,None,'01/02/2015','25'),(None,None,'01/02/2015',None),(0,None,None,None)]
Run Code Online (Sandbox Code Playgroud)

我想要那样的输出:

  listobj = [(None,None,'01/02/2015','25'),(None,None,'01/02/2015',None),(0,None,None,None)]
Run Code Online (Sandbox Code Playgroud)

python list

2
推荐指数
1
解决办法
92
查看次数

Realm Swift - 货币数据类型

我在这个问题中注意到Using Realm.io to store money values

建议是对 Realm for Android/Java 中的货币值使用“long”数据类型。

Swift 的最佳推荐是什么?通过乘以基于货币的因子将其转换为 Int?目前我只处理单一货币,但理论上这可能会改变。作为货币价值,精度显然很重要。

realm swift

0
推荐指数
1
解决办法
604
查看次数

领域链接对象和删除

在 Realm 中,如果我有一个 linkingOjbects 关系设置,我应该如何处理删除而不是留下孤儿,尤其是当它是多对多逆关系时?

使用 Realm Person 和 Dog 示例,假设此实例中的 Person 是遛狗者,并且可以在不同的日子由不同的人遛狗

所以一个 Dog 对象被分配给多个 Person 对象。每个 Person 对象都可以看到 Dog。假设以下对象结构和数据

  Person : Object {
     dynamic var name:String = ""
     let dogs = List<Dog>()
  }

  Dog : Object {
    dynamic var name: String = ""
    let walkers = LinkingObjects<fromType: Person.self, property:"dogs">
  }


Person A
dogs = [Fido,Rover]

Person B
dogs = [Fido, Rover]
Run Code Online (Sandbox Code Playgroud)

人 A 不再需要走 Fido,所以正确的方法是

   personA.dogs.remove(objectAtIndex:idxOfFido) 
Run Code Online (Sandbox Code Playgroud)

这会更新 personA 中的引用,但它也会更新 dog 中的引用吗?

其次,如果 personB 也不再需要步行 Fido 我会做的

  personB.dogs.remove(objectAtIndex:idxOfFido)
Run Code Online (Sandbox Code Playgroud)

但这会不会在我的狗领域留下一个对 …

realm swift realm-list

0
推荐指数
1
解决办法
2614
查看次数

如何按Int值对元组数组进行排序?

我有一系列元组(

 var array = [("John Doe", 13), ("The Guy", 15), ("The Person", 19)]
Run Code Online (Sandbox Code Playgroud)

并希望按从最大到最小的int值对它们进行排序.最后,我希望数组看起来像这样

 var array = [("The Person", 19), ("The Guy", 15), ("John Doe", 13)]
Run Code Online (Sandbox Code Playgroud)

我怎么做到这一点?

arrays tuples ios swift3 xcode8

-1
推荐指数
1
解决办法
106
查看次数

标签 统计

realm ×2

swift ×2

arrays ×1

google-bigquery ×1

ios ×1

list ×1

python ×1

realm-list ×1

swift3 ×1

tuples ×1

xcode8 ×1