簡體   English   中英

如何在Mule DataWeave中使用OR條件從MongoDB中讀取數據

[英]How to use OR condition in mule dataweave for reading data from mongodb

Mule 3.8.5 +數據編織代碼查詢:-

我試圖從mongodb獲取記錄,該記錄等於在輸入查詢參數中傳遞的代碼,或者如果代碼等於靜態字符串“ ALL”。

上面的方法不起作用,有人可以建議在轉換消息組件中編寫正確的語法嗎?

%dw 1.0
%output application/json
---
 {
    "code" : [ upper inboundProperties."http.query.params".code or "ALL"]
 }

例如,如果我將代碼傳遞為“ IND”,則它應返回代碼等於“ IND”或“ ALL”的記錄。 結果= IND,ALL,ALL。

您可以使用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查詢使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM