Mongo以ISODate格式查询日期范围

时间:2016-04-29 13:12:41

标签: mongodb jasper-reports mongodb-query aggregation-framework

我试图创建此查询以与jasper报告一起使用但我的语法有问题,我在我的数据库中有2 ISODates我希望在之间进行查询,在此查询中我使用$match$gt$lt

无论如何,某些事情是不正确的,因为控制台说错误但没有指定它。

Obs:问题与$match以及$lt$gt.有关,因为没有它们就可以查询。

代码:

{
    runCommand : { 
        aggregate : 'saleCalculation', 
        pipeline : [
            { 
                $match: {
                    processingInfo.modifiedDate: {$gt : ISODate("2016-05-01T09:29:40.572Z")}, 
                    {$lt : ISODate("2016-06-01T09:29:40.572Z")} 
                } 
            },        
            { 
                $project : { 
                    header.documentCode : 1, 
                    header.transactionDate : 1, 
                    header.metadata.entityName : 1, 
                    lines : 1 
                }
            },
            { $unwind  : '$lines'},
            { $unwind  :'$lines.calculatedTax.details' }
        ]
    }
}

贾斯珀手册说我需要做类似的事情:

http://community.jaspersoft.com/wiki/how-query-mongo-isodate-data-parameter

但我不明白

2 个答案:

答案 0 :(得分:0)

试试这段代码:

{
    runCommand : { 
        aggregate : 'saleCalculation', 
        pipeline : [
            { 
                $match: {
                    processingInfo.modifiedDate: {$gt : ISODate("2016-05-01T09:29:40.572Z"), 
                    $lt : ISODate("2016-06-01T09:29:40.572Z")} 
                } 
            },        
            { 
                $project : { 
                    header.documentCode : 1, 
                    header.transactionDate : 1, 
                    header.metadata.entityName : 1, 
                    lines : 1 
                }
            },
            { $unwind  : '$lines'},
            { $unwind  :'$lines.calculatedTax.details' }
        ]
    }
}

答案 1 :(得分:0)

尝试使用此管道。确保使用双引号。

Can't open perl script "/cygdrive/c/<...>/yyy.pl": No such file or directory

我在mongo shell上尝试了这个命令,它没有任何错误。

    [
        { "$match": {"processingInfo.modifiedDate": { "$gt":ISODate("2010-03-26T18:40:59.000Z"), "$lt":ISODate("2016-09-28T18:40:59.000Z")}}},
        { 
            "$project" : { 
                "header.documentCode": 1, 
                "header.transactionDate": 1, 
                "header.metadata.entityName": 1, 
                "lines" : 1 
            }
        },
        { "$unwind": "$lines"},
        { "$unwind": "$lines.calculatedTax.details" }
    ]