在Apache Drill

时间:2016-08-18 21:26:56

标签: json mongodb apache-drill

我有一个简单的Mongo数据库(进一步简化如下),我正在使用Apache Drill查询。

  1. 使用以下行创建一个名为small.json的json文件:
  2.   

    { “_ ID”:{ “$ OID”: “56a784b76952647b7b51c562”}, “出处”:{ “图像”:   { “CASE_ID”: “TCGA-TS2”, “subject_id”: “TCGA”}}}

    1. 使用small.json创建一个Mongo DB,如下所示:
    2.   

      mongoimport --db users --collection contacts --type small.json

      1. 我可以像下面一样查询上面的数据库,并得到结果。
      2.   

        SELECT camic.provenance.image.case_id caseid

             

        FROM mongo.users。contacts camic

             

        + ----------- +

             

        | caseid |

             

        + ----------- +

             

        | TCGA-TS2 |

             

        + ----------- +

             

        选择了1行(1,26秒)

        但是,如果嵌套元素涉及“WHERE”,则查询失败,如下所示。

          

        SELECT camic.provenance.image.case_id caseid   来自mongo.users。contacts camic   WHERE caseid ='TCGA-TS2';

        (没有WHERE子句,预期结果与上述相同)。

        这可能是一个错误,我已经报告过了:https://issues.apache.org/jira/browse/DRILL-4855

        是否有任何解决方法可以使用Apache Drill在Mongo中获取涉及嵌套元素的结果?

1 个答案:

答案 0 :(得分:1)

SELECT camic.provenance.image.case_id caseid FROM mongo.users.contacts camic WHERE camic.provenance.image.case_id = 'TCGA-TS2';

我们无法在以下子句中引用列别名:

  • WHERE
  • GROUP BY
  • HAVING

http://drill.apache.org/docs/select-statements/