【问题标题】:Birt mongodb paramBirt mongodb 参数
【发布时间】:2014-07-29 20:28:00
【问题描述】:

我安装了 Birt 4.3(最新)作为 Eclipse 插件。 JDBC 作为数据源非常适合我。我在查询中定义了一个参数。我可以通过报表设计在数据集中定义一个参数并将其链接到报表参数。

但我对 MongoDB 有多个问题

1) 当我打开“编辑数据集”对话框时,我在左侧找不到菜单“参数”。我只看到

Data Source
Query
Output Columns
Computed Columns
Filters
properties Binding
Setting
Review Results

没有参数了。我可以在 JDBC 而不是 MongoDB 中看到它 当数据源是 MongoDB 时,谁能请教如何在数据集中定义一个参数?如何将参数链接到报表的参数?

2) 在 MongoDB (Birt) 中如何在“运行数据库命令”的表达式或查询中定义参数 在 JDBC 中,我们可以使用“?”作为一个参数持有者像

select * where id=?

param 将替换 "?"

对于 MongoDB

{
    runCommand : {
        aggregate : COLLECTION_NAME,
       .....
    }
}

COLLECTION_NAME 不同。我该如何表示它?

我们将不胜感激。

谢谢

【问题讨论】:

    标签: mongodb parameters birt


    【解决方案1】:

    MongoDB 表达式语法本身不支持参数,因此 MongoDB ODA 连接器不直接支持数据集参数。您可以使用 BIRT 脚本来引用 BIRT 报告参数并更改“命令表达式”数据集属性的运行时值。

    您可以在使用 Eclipse 创建 MongoDB 数据集时识别系统连接。这是在数据集对话框的 MongoDB 集合区域中。

    查看http://www.eclipse.org/forums/index.php/t/628348/了解更多信息。

    示例

    您可以使用脚本在数据集中使用 beforeOpen 脚本设置查询,例如:

    this.queryText ='{ "findQueryExpr" : "{ pop: { $gte: 20000  } }" , "operationType" : "FIND" , "collectionName" : "zipcode" , "selectedFields" : [ "_id" , "city", "pop"]}'
    

    字段和集合名称需要与预先配置的数据集匹配。

    将 20000 替换为您的参数值。例如,使用一个名为“Population”的参数,它接受一个整数,您可以在运行时使用以下脚本更新您的查询:

    this.queryText ='{ "findQueryExpr" : "{ pop: { $gte: '+params["Population"].value+'  } }" , "operationType" : "FIND" , "collectionName" : "zipcode" , "selectedFields" : [ "_id" , "city", "pop"]}'
    

    【讨论】:

    • 不鼓励仅链接的答案,您能否总结论坛中的答案,链接保留作为参考,但是如果其他网站消失了,这里的答案仍然有价值。
    • 感谢您的回答。 MongoDB 表达式语法本身不支持参数,但 BIRT 确实支持(它在运行时替换了文本。我不记得版本,但它是在 2011 年)。它的参数菜单为 JDBC。 BTW Jasper 支持 MongoDB 中的参数。我想知道为什么我看不到 MongoDB 中的参数菜单作为 JDBC。早期版本支持 MongoDB 中的参数菜单。有没有人有经验或解决方案?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多