我试图创建此查询以与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
但我不明白
答案 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" }
]