如何从sql对象查询项目(CRATE DB)

时间:2016-12-27 15:22:27

标签: sql crate

我正在尝试使用新的crate db。 link 我有一个包含“基础设施”和“网络”对象的表:

CREATE TABLE servers (infrastructure object(strict) as (
                #etc...
                os_name string, 
                #etc...
                network array(object as 
                (etc.., hosting_id string, etc... ))

我需要从“基础架构”查询os_name,从网络阵列查询hosting_id。我是怎么做到的我试图谷歌找到正确的语法,但没有成功。我想要这样的东西:

SELECT * FROM servers WHERE infrastructure[os_name] = "some value"

SELECT * FROM servers WHERE infrastructure["network"]["hosting_id"] = "some value"

1 个答案:

答案 0 :(得分:2)

ANY()是你的朋友,但要注意它不包含对象数组。所以你还需要考虑this information。下面的解决方案适用于最新的Crate版本1.0.1:

SELECT * FROM servers 
WHERE 
  os_name = 'some value' 
AND 
  'some value' = ANY(network['hosting_id']);