在 Apache Drill 中使用嵌套模式查询 MongoDB

Querying a MongoDB with nested schema in Apache Drill

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

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

{"_id":{"$oid":"56a784b76952647b7b51c562"},"provenance":{"image": {"case_id":"TCGA-TS2","subject_id":"TCGA"}}}

  1. 使用 small.json 创建一个 Mongo 数据库,如下所示:

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

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

SELECT camic.provenance.image.case_id caseid

FROM mongo.users.contacts camic

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

| caseid |

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

| TCGA-TS2 |

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

1 row selected (1,26 seconds)

但是,当"WHERE"涉及嵌套元素时,查询失败,如下所示。

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

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

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

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

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

我们不能在以下子句中引用列别名:

  • 哪里
  • 分组依据
  • 拥有

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