繁体   English   中英

Pentaho MongoDB 报告查询日期范围

[英]Pentaho MongoDB Report query date ranges

我正在尝试使用 Pentaho Report Designer MongoDB 本机连接器生成报告,但无法使用日期范围。

我的收藏有一个名为“timestamp”的列,我尝试将以下内容放在查询选项卡中:

{"timestamp" : {$gte :ISODate("2013-12-04T15:10:00.000Z")}}
{"timestamp" : {$gte : new Date("2013-12-04T15:10:00.000Z")}}

虽然这些查询都在 mongo shell 上使用 .find(query) 工作,但在 Pentaho Report Designer 中,我没有得到任何行,也没有错误消息。

更简单的查询,如:

{"objType" : "Image"}

在珠三角工作正常。

编辑:

由于来自以下方面的建议,我设法使其正常工作:

http://wiki.pentaho.com/display/EAI/MongoDB+Input

所以答案是使用类似的东西:

{ "$query" : { "timestamp" : { $gte : { $date : "2013-12-04T15:10:00Z" }, $lte : { $date : "2013-12-04T15:12:00Z" } } } }

我仍然无法使用 Date 参数使其工作:如果我输入:

{ "$query" : { "timestamp" : { $gte : { $date : "${StartDate}" }, $lte : { $date : "${EndDate}" } } } }

在查询选项卡中,我选择“StartDate”和“EndDate”为“Date”类型,它不起作用。 如果我将参数的类型设置为“字符串”并将它们的值设置为 ISO 格式,则它可以正常工作。

有没有办法直接使用 Date 类型的参数?

来自https://help.pentaho.com/Documentation/8.2/Products/Data_Integration/Transformation_Step_Reference/MongoDB_Input

您可以使用如下内容:

{ created_at : { $gte : { $date : "2014-12-31T00:00:00.000Z" } } }

带变量:

# my_date = '2014-12-31'
{ created_at : { $gte : { $date : "${my_date}T00:00:00.000Z" } } }

或者:

# my_date_time = '2014-12-31T00:00:00.000Z'
{ created_at : { $gte : { $date : "${my_date_time}" } } }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM