如何在 Nifi getMongo 查询字段中获取 ISO 字符串 [英] How to get ISO string in Nifi getMongo Query Field

查看:43
本文介绍了如何在 Nifi getMongo 查询字段中获取 ISO 字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用表达式语言在 Nifi getMongo 查询字段中使用以下查询生成 ISO 字符串,

I'm trying to use expression languge to generate ISO string in Nifi getMongo Query field using following query,

{
"remindmeDate": {
"$gte": "${now():format("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",'GMT')}",
"$lte": "${now():toNumber():plus(359999):format("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",'GMT')}"
}
}

但是我收到无效的 JSON 错误错误,因为双引号没有转义.当我们尝试使用 \ 运算符对其进行转义时,nifi 不会评估表达式语言.是否有任何方法或解决方法可以使其正常工作?

But i'm getting invalid JSON error error as double quotes are not escaped. When we try to escape it using \ operator, nifi is not evaluating the expression language. Is there any method or workaround to get this working ?

提前致谢

推荐答案

Nifi 的 getMongo 查询字段不支持 EL.所以我在 MongoDB 中为我的动态查询创建了一个存储函数,并从 Nifi 调用它.

Nifi's getMongo Query field doesnt support EL. So i created a stored function in MongoDB for my dynamic query and called it from Nifi.

{
    "_id" : "reminderDateGMT",
    "value" : function (reminderDateGMT) {
            var reminder = new Date(reminderDateGMT)
            var fromDate = new Date();
            var toDate = new Date(new Date().getTime()+(1000 * 60 * 60));
            if ((reminder >= fromDate) && (reminder <=toDate )) {
                return true;
            } else {
                return false;
            }

        }
}

在 nifi GetMongo 查询中,

In nifi GetMongo Query,

{
  "$where": "reminderDateGMT(this.reminderDateGMT)"
}

这篇关于如何在 Nifi getMongo 查询字段中获取 ISO 字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆