finereport中在mongodb聚合数据集查询的时候,查询某一列的两个横线之间的值,并将其转换成标准时间格式
时间: 2024-03-09 18:44:26 浏览: 136
在 FineReport 中,如果你需要在 MongoDB 的聚合数据集中查询某一列的两个横线之间的值,并将其转换成标准时间格式,可以使用 MongoDB 聚合数据集中的 $regexFind 和 $dateFromString 操作符。
假设你的聚合数据集名为 aggData,需要查询的列名为 dateStr,你可以使用以下代码来将 dateStr 中的两个横线之间的值提取出来,并将其转换成时间格式:
```
[
{
"$project": {
"result": {
"$regexFind": {
"input": "$dateStr",
"regex": "\\d{4}-\\d{2}-\\d{2}--(\\d{4}-\\d{2}-\\d{2})"
}
},
"date": {
"$dateFromString": {
"dateString": {
"$arrayElemAt": [ "$result.captures", 0 ]
},
"format": "%Y-%m-%d"
}
}
}
}
]
```
在上述代码中,首先使用 $regexFind 操作符查找 dateStr 字段中两个横线之间的值,并将其保存在名为 result 的新字段中。正则表达式 "\\d{4}-\\d{2}-\\d{2}--(\\d{4}-\\d{2}-\\d{2})" 用于匹配两个横线之间的日期格式,并将匹配结果保存在 result.captures 字段中。
接下来,使用 $arrayElemAt 操作符获取 result.captures 数组中的第一个元素,然后将其作为参数传递给 $dateFromString 操作符,将其转换为日期格式。在 $dateFromString 中,我们使用格式化字符串 "%Y-%m-%d" 将日期格式转换为 "YYYY-MM-DD" 的格式。
最终,我们将转换后的日期保存在名为 date 的新字段中。你可以在聚合数据集中使用 $project 操作符将其它需要的字段投影出来,形成最终的结果。
阅读全文