mongodb - 如何在 mule dataweave 中使用 OR 条件从 mongodb 读取数据
问题描述
Mule 3.8.5 + Data-weave 代码查询:-
我正在尝试从 mongodb 获取记录,该记录等于输入查询参数中传递的代码,或者如果代码等于静态字符串“ALL”。
以上不起作用,任何人都可以建议在转换消息组件中编写正确的语法吗?
%dw 1.0
%output application/json
---
{
"code" : [ upper inboundProperties."http.query.params".code or "ALL"]
}
例如,如果我将代码传递为“IND”,它应该返回代码等于“IND”或“ALL”的记录。结果 = IND、全部、全部。
解决方案
您可以使用default
:
%dw 1.0
%output application/json
---
{
"code" : [ upper inboundProperties."http.query.params".code default "ALL"]
}
更新。
基于这里的mongo查询语法:https ://docs.mongodb.com/manual/tutorial/query-documents/
db.inventory.find( { status: { $in: [ "A", "D" ] } } )
尽管您可以使用 $or 运算符表达此查询,但在对同一字段执行相等检查时,请使用 $in 运算符而不是 $or 运算符。
这应该以正确的格式生成 json 查询:
%dw 1.0
%output application/json
%var code = inboundProperties."http.query.params".code
---
{
"code" : { "\$in": [ upper code, "ALL" ] when code !=null otherwise ["ALL"] }
}
在 mongo 查询使用之前,您可能需要先将其转换为字符串。
推荐阅读
- docker - 通过 Docker 登录气流的默认用户名和密码是什么?
- haskell - 安装可执行文件时硬编码 datadir 路径
- c++ - 如何在 SML 状态或状态机中添加/初始化成员?
- r - R:在存在多个括号的情况下替换内部方括号
- python - pip - 使用具有两个不同 index-url 的两个 requierements.txt 文件
- amazon-web-services - 当 --profile 作为参数传递时,AWS SAM CLI 本地调用帐户 ID 未设置
- html - 如何使我的方形图像响应?
- ruby-on-rails - 如果 css_lint 返回错误,Circleci buld 应该会失败
- java - 如何在 Springboot REST API 中为 db insert 方法编写模拟单元测试?
- redhawksdr - 在域中运行时创建动态波形