如何在(Jasper Studio)的 mongo DB 查询中制作动态/可选过滤器(参数)
Posted
技术标签:
【中文标题】如何在(Jasper Studio)的 mongo DB 查询中制作动态/可选过滤器(参数)【英文标题】:How to make a Dynamic/Optional Filter(parameters) in mongo DB query at (Jasper Studio) 【发布时间】:2019-01-11 14:43:34 【问题描述】:我正在创建一个网络应用程序,它运行良好,但最终用户需要根据它的数据创建一个报告。
在报告页面上,我创建了一些文本框,用户将在其中键入以进行过滤。那些 txt 框可能是空的,我需要从数据库中返回所有内容,或者可以填充一些参数。请记住,我需要将 txt 框内容作为参数传递给 JasperServer,它们将在查询中使用。
数据输入的一个例子是:
txtName= empty (null),
txtCity= 'Belo Horizonte'
它应该生成一份报告,其中包含人们在贝洛奥里藏特的所有生活记录,无论名称如何。
我用 SQL 完成了它,并且运行良好。在我尝试在 mongo 上使用相同的逻辑但它不起作用之后。我已经尝试过使用 $lt、$gt、$lte、$gte、$exist、$ne 和一堆其他聚合工具,但我无法正确使用它。
SQL:
select * from myfirstreports
where ($Pcity is null or cidade =$Pcity)
AND ($Pname is null or nome =$Pname)
蒙哥:
'collectionName' : 'myfirstreports',
'findFields' :
'nome': 1, 'numeros': 1, 'vulgo': 1, 'cidade': 1,
'usuResponsavelCadastro': 1, 'created_at': 1
,
findQuery :
$and: [
$or:[ $Pcity: $eq: null, 'cidade': $Pcity],
$or:[$Pname: '$eq': null, 'nome': $Pname]
]
【问题讨论】:
【参考方案1】:我使用了以下表达式:
$Pcity.equals(null)? " " : "'cidade': '$P!city'"//Need to create a non prompting parameter
$Pname.equals(null)? " ": "'nome': '$P!name'"
$P!... 参数允许我将查询创建为字符串并传递给 JasperSoft 报告。
【讨论】:
以上是关于如何在(Jasper Studio)的 mongo DB 查询中制作动态/可选过滤器(参数)的主要内容,如果未能解决你的问题,请参考以下文章
如何获取 Grails 的 jasper 报告的数据源连接?
我应该把我的 .jasper 文件放在哪里以及如何访问它? [复制]
热门速递 | 腾讯恢复新用户注册,英伟达或无法收购ARM;Mongo DB 5.1Visual Studio 2022高能