我正在尝试使用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(查询)工作,但在Pentaho报表设计器中我没有得到任何行,也没有错误信息。
更简单的查询,例如:
{"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" } } } }
仍然无法使用日期参数使其工作:如果我把:
{ "$query" : { "timestamp" : { $gte : { $date : "${StartDate}" }, $lte : { $date : "${EndDate}" } } } }
在查询选项卡中,我选择“StartDate”和“EndDate”为“Date”类型,它将无效。如果我将参数的类型设置为“String”并将其值设置为ISO格式,则它可以正常工作。
有没有办法直接使用Date类型参数?
答案 0 :(得分:0)
您可以使用类似next的内容:
{ 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}" } } }