JasperStudio 和 MongoDB 之间的连接

Connection between JasperStudio and MongoDB

提问人:Vivek Buri 提问时间:11/16/2023 最后编辑:JetVivek Buri 更新时间:11/20/2023 访问量:26

问:

赏金将在 7 天后到期。这个问题的答案有资格获得 +50 声望赏金。Jet 正在寻找来自信誉良好的来源的答案

我尝试按照一些教程使用 MongoDb 连接选项和 JDBC 选项将 mongodb 连接到 Japerstudio。MongoDB 选项甚至无法使用连接字符串连接到数据库。JDBC 选项无法识别 JDBC 驱动程序,我什至相应地将 JDBC jar 文件添加到库中。 有人可以指导我了解细节,如何在 mongodb 和 JasperStudio 之间建立稳定的连接?

最后,我以某种方式能够连接到我的本地mongodb,并尝试使用查询对数据进行报告。我正在执行的查询有时甚至不被接受,有时即使它们被接受,它只是通过将原始数据粘贴到页面上来显示报告,而不是通过使数据可用于工作(如制作图表、图形等)来提供帮助。当我访问数据时,我尝试将MongoDB中的一些字段添加到图表中,但它只能以JSON格式添加它,无法使其成为良好的可视化表示。

例:

{
    'collectionName':'Employee',
    'findFields':{
    'details': {
      $elemMatch: {
        'department': 'IT',
        'subdept": "software",
        'leave_period': {
          $gte:"2023-08-05T09:00:00Z",
          $lte:"2023-08-10T20:00:00Z"
        }
      }
    }
  }
}

如果我使用上面的查询,我希望它显示给定日期之间的结果。但它根本没有显示任何数据。 如果可能的话,有人可以指导我如何做到这一点吗?

mongodb jdbc mongodb-query jaspersoft-studio

评论

0赞 ray 11/24/2023
您确定问题是由于 mongodb 和 jasper 之间的连接造成的吗?您是否尝试过将查询独立输入mongo shell以查看它是否可以获取任何数据?为了快速查看,日期查询可能不起作用,因为您可能将日期字符串与日期字段匹配。
0赞 Jet 11/29/2023
@Jay,相同的连接查询在 mongo compass 中有效。

答:

-1赞 ARITRA GHOSH 11/21/2023 #1

您需要将 JasperSturudio 的 IP 列入允许列表。找到 IP 并以这种方式添加相同的 IP

enter image description here

评论

0赞 Jet 11/22/2023
事实上,mongo 不是 Atlas,而是部署在 azure 中作为 pod 运行的 entrprice 版本,使用的连接字符串可以成功连接到 mongo compass,但在 jasper 中失败。URI 如下所示,即使末尾添加了数据库名称(product-db),也会出错mongodb://xx.xx.xxx.xx:27017/?authSource=product-db&readPreference=primary&directConnection=true&tls=true&tlsAllowInvalidCertificates=true/product-dbCaused by: java.lang.IllegalArgumentException: databaseName can not be null
0赞 ARITRA GHOSH 11/26/2023
您的数据库名称应该在这里:而不是在末尾。试试吧,让我知道。mongodb://xx.xx.xxx.xx:2701/<database_name>?the_rest_of_the_params
0赞 Jet 11/28/2023
现在,尝试上述建议后的新异常是 -net.sf.jasperreports.engine.JRException: Error creating MongoDBConnection; Caused by: Cannot test MongoDB connection; Caused by: Timed out after 30000 ms while waiting to connect. Client view of cluster state is {type=UNKNOWN,, caused by {javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target}
0赞 ARITRA GHOSH 12/1/2023
你能给我更新的uri吗?
0赞 Jet 12/1/2023
在这里-mongodb://xx.xx.xxx.xx:27017/product-db?authSource=product-db&readPreference=primary&directConnection=true&tls=true&tlsAllowInvalidCertificates=true