mongodb - 用于 MongoDB 查询的 Jasper 报告 ISODate 参数
问题描述
我有一个 Jasper 报告,其中包含从日期和到日期的几个日期参数。
<parameter name="fromDate" class="java.util.Date" />
<parameter name="toDate" class="java.util.Date" />
我想在日期比较中使用这些与作为 ISODate 存储在我的 MongoDB 数据库中的 createdDate 字段
$match : {
"createdDate": {
$gte: "$P!{fromDate}",
$lt: "$P!{toDate}"
}
}
这在不返回任何结果方面不起作用,因此我创建了一个变量来将日期参数转换为 ISODate 格式:
<variable name="formattedFromDate" class="java.lang.String">
<initialValueExpression><![CDATA[DATEFORMAT($P{fromDate}, "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")]]></initialValueExpression>
</variable>
然后我将管道的 $match 阶段更改为:
$match : {
"createdDate": {
$gte: ISODate("$V!{formattedFromDate}")
}
}
同样,它没有返回任何应该返回的结果,但是当我将它硬编码为我为报告设置的值作为参数时,它确实返回了:
$match : {
"createdDate": {
$gte: ISODate("2020-01-01T00:00:00.000Z")
}
}
任何想法我做错了什么?不幸的是,我不能将 from 和 to 日期保留为硬编码值,因为用户需要能够选择这些值。
解决方案
推荐阅读
- python - 如何在 pythonanywhere 上部署 Flask 应用程序,并将文件夹作为模块
- javascript - 将 onprogress 侦听器附加到 XMLHttpRequest.upload 会停止发送 POST 数据(wtf?)
- c# - dotnet core authorize 始终重定向到身份默认登录页面
- html - 如何让我的资产净值在右上角对齐?
- javascript - 如何在 HOC 中使用计算属性名称?
- python - 没有重复的 DataFrame 的最小值
- html - 如何为 Web HTML 导出 Godot 场景?
- ksh - 字符串捕获并打印下一个字符。
- hyperledger-fabric - 为什么我们需要在 Hyperledger Fabric 的开发中使用 Solo,在生产中使用 Kafka?
- c# - Entity Framework Core 中的 Cosmos DB 提供程序抛出 400 BadRequest